2015-05-10 2 views
-2

Во-первых, я объявил две структуры, как следующее:Список массив массив структуры

struct m1 
{ 
    int 
    int 
    char 
    ... 
} 

и

struct m2 
{ 
    int 
    int 
    char 
    ... 
} 

У меня есть два массива m1 и m2. Мне нужно сопоставить один м1 против нескольких м2. Я не знаю, размер обоих, поэтому после поиска я решил использовать

List<m1 or m2> = new List<m1 or m2>(); 

и работает отлично. но

List<m1 , m2> = new List<m1 , m2>(); 

дает мне ошибку «требует один аргумент типа» Пожалуйста, помогите мне, как я могу это сделать?

Благодаря

+1

Ваш вопрос нечеткий, не компилируется и не имеет смысла. Попробуйте пояснить, что вы имеете в виду, с небольшим, но полным воспроизведением вашей проблемы. –

+0

_ «Каждая структура из типа m1 имеет несколько структур из типа m2». _ Что это значит? Вы пытаетесь сохранить связь между 'm1' и' m2 ', которые принадлежат ей? –

+0

@YuvalItzchakov, почему неопределенно, да, он не компилирует код. но мне нужен способ сделать что-то в моем коде, например, объявить список массива массива типа struct. это правило в переполнении стека, должно ставить компиляцию кода? пожалуйста, уточните для меня. – Abdo

ответ

2

List<T> требуется один тип не может иметь два типа, что я вижу, что вам нужно отобразить один m1 против нескольких m2, поэтому в данном случае Dictionary<TKey,TValue> подходит здесь:

Dictionary<m1 , List<m2>> = new Dictionary<m1 , List<m2>>(); 

и теперь добавьте элементы в словаре.

+0

Большое спасибо, именно то, что мне нужно. Возможно, я новичок и не знаю Словарь. – Abdo

Смежные вопросы