2015-02-08 6 views
1

Я хочу создать массив списка, который будет содержать строку и список массивов.Создать массив из списка

пример: Я хочу, как этот.

лист (0) --- строковое значение
лист (0) --- лист (0) - значение строки
лист (0) ---- список (1) - значение строки

список (1) --- строковое значение
список (1) --- лист (0) - значение строки
список (1) ---- список (1) - значение строки

и т. д.

как я объявлю?

я пытался:

List<List<String>> list = new List<List<string>>(); // but it didn't work. 
List<string[]> arrayList = new List<string[]>(); // again it didn't work.. 

это можно объявить? если так как?

+0

Что вы имеете в виду, не работает ?. По крайней мере, первое заявление. –

+0

Я даже не понял, как вы хотите хранить данные. –

ответ

0

Как я могу видеть в своей структуре данных вы просили A List, содержащих два List «S, и все они имеют одинаковую string типа, то вы должны пойти с Dictionary. Как List может быть одного типа, и вы можете добавить к нему одно значение за раз. Попробуйте Dictionary,

Dictionary<string, string> dictionary = new Dictionary<string, string>(); 

или если вы хотите Dictionary содержащий List из string,

Dictionary<List<string>, List<string>> dictionary = new Dictionary<List<string>, List<string>>(); 
1

Isnt это Dictionary<string, string[]>?

var x = new Dictionary<string, string[]>(); 

x.Add("string1", new string[] {"a", "b", "c"}) 

Тогда у вас может быть список этого словаря.

var list = new List<Dictionary<string, string[]>>(); 

list.Add(x); 
0

Это работает для вас?

public class Tree<T> : List<Tree<T>> 
{ 
    public Tree(T value) { this.Value = value; } 
    public T Value { get; set; } 
} 

Это не массив, а список, но он имеет одинаковую структуру.

Вы можете присвоить это следующим образом:

var trees = new [] 
{ 
    new Tree<string>("Branch 1") 
    { 
     new Tree<string>("Leaf 1.1"), 
     new Tree<string>("Leaf 1.2"), 
    }, 
    new Tree<string>("Branch 2") 
    { 
     new Tree<string>("Leaf 2.1"), 
     new Tree<string>("Leaf 2.2"), 
    }, 
}; 
0

попробовать этот

 List<List<String>> str_2d_list = new List<List<String>>(); 
     List<String> l1 = new List<string>(); 
     l1.Add("l1.string1"); 
     l1.Add("l1,string2"); 
     List<String> l2 = new List<string>(); 
     l2.Add("l2.string1"); 
     l2.Add("l2,string2"); 
     str_2d_list.Add(l1); 
     str_2d_list.Add(l2); 
0

, если вы хотите создать массив в строку и список, используйте второй способ в коде. но если вы хотите, чтобы список списка использовал первый код в коде.

using System; 
using System.Collections.Generic; 

namespace ConsoleApplication1 
{ 
    internal class Program 
    { 
     private static void Main(string[] args) 
     { 
      // an example of list of strings 
      List<string> names = new List<string>(); 
      names.Add("Mike"); 
      names.Add("Sarah"); 
      List<string> families = new List<string>(); 
      families.Add("Ahmadi"); 
      families.Add("Ghasemi"); 

      // 1st way 
      List<List<string>> outsideList = new List<List<string>>(); 
      outsideList.Add(names); 
      outsideList.Add(families); 


      // 2nd way 
      Dictionary<string, List<string>> d = new Dictionary<string, List<string>>(); 
      d.Add("first", names); 
      d.Add("second", families); 

      // how to access list<list<>> 
      foreach (List<string> list in outsideList) 
      { 
       foreach (string s in list) 
        Console.WriteLine(s); 
      } 

      // how to access list inside dictionary 
      foreach (List<string> list in d.Values) 
      { 
       foreach (string s in list) 
        Console.WriteLine(s); 
      } 
     } 
    } 
} 
Смежные вопросы