2016-11-08 10 views
0

リストから要素をC#で二次元配列にするにはどうすればいいですか?リストを配列に変換するC#

tura = new string[howManyWords, 6]; 
    howManyWords = 0; 

    foreach (words word in wc.words) 
    { 
     if (word.CategoryNumber == scb.Category) 
     { 
      tura[howManyWords] ......; howManyWords++; 
     } 
    } 

私はXMLファイルから作成したリストを持っています。私はユニティで働いています。

<?xml version="1.0" encoding="utf-8"?> 
<WordCollection> 
    <Words> 
    <Word name="$mezczyzna"> 
     <CategoryNumber>1</CategoryNumber> 
     <PolishName>mężczyzna</PolishName> 
     <EnglishName>a man</EnglishName> 
     <AudioName>man.mp3</AudioName> 
     <ImageName>man</ImageName> 
     <ImageLocalisationWidth>200</ImageLocalisationWidth> 
     <ImageLocalisationHigh>700</ImageLocalisationHigh> 
    </Word> 
    </Words> 
</WordCollection> 
+3

これは2次元配列のようには見えません。これはWord型のオブジェクトのリストのように見えます。なぜあなたはそれを2次元の配列にしようとしていますか、2次元の配列は何ですか?新しい配列がどのように見えると思いますか? – Dispersia

+0

組み込みの 'List.ToArray()'メソッドがあります:https://msdn.microsoft.com/en-us/library/x303t819(v=vs.110).aspxあなたが使用できるかもしれません。 –

+0

@dubstyleeは2次元配列ではありません。 – Dispersia

答えて

1

:このよう

void Main() 
{ 
    List<Word> Words = new List<UserQuery.Word> { new Word { CategoryNumber = 0, EnglishName = "WORD1" }, new Word { CategoryNumber = 1, EnglishName = "WORD2" }, new Word { CategoryNumber = 1, EnglishName = "WORD3" } }; 

    Dictionary<CategoryTypes, List<Word>> categoryWords = Words.GroupBy(word => word.CategoryNumber).ToDictionary(x => (CategoryTypes)x.Key, x => x.ToList()); 

    if (categoryWords.ContainsKey(CategoryTypes.Category2)) 
    { 
     List<Word> words = categoryWords[CategoryTypes.Category2]; 

     for (int i = 0; i < words.Count; i++) 
     { 
      Console.WriteLine(words[i].EnglishName); 
     } 
    } 
} 

class Word 
{ 
    public int CategoryNumber { get; set; } 
    public string EnglishName { get; set; } 
} 

enum CategoryTypes 
{ 
    Category1 = 0, 
    Category2 = 1 
} 

あなたはその後、その後、列挙型のタイプによって辞書categoryWordsを呼び出し、およびすることができますあなたの言葉のリストしか持っていない。

-1

LINQを使用できますか?あなたの最も単純なオプションである可能性が高いToArray()メソッドを提供します。私たちはあなたが辞書で意味信じている、とContentNumberにより、ここでの例であるので

> var list = new List<string> { "one", "two", "three" }; 
> var array = list.ToArray(); 
> list 
List<string>(3) { "one", "two", "three" } 
> array 
string[3] { "one", "two", "three" } 
> 
+0

再度。これは2次元配列ではありません。 – Dispersia

+0

ええ、公正なポイント。私は@ホーガンが正しいと思うし、彼らは辞書を探しているだけで、まだそれを認識していない。 :) –

+0

ええ、私は正確に彼が望んでいるかわからない、それは辞書かもしれませんが、私はちょうどあなたの答えは2次元の配列を返すことはありません、それはタイプの1次元配列を返しますWord – Dispersia

関連する問題