将列表转换为数组C#

时间:2016-11-08 17:08:10

标签: c# arrays list

你能告诉我如何将列表中的元素放到C#中的二维数组中?

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

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

我有一个XML文件列表。我在Unity工作。

   <?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>

2 个答案:

答案 0 :(得分:1)

因为我们认为你的意思是字典和ContentNumber,所以这是一个例子:

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 :(得分:-1)

你能使用LINQ吗?它提供了一个ToArray()方法,这可能是您最简单的选择。像这样:

> 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" }
>