如何将Object <t>复制到数组</t>

时间:2014-04-09 13:28:09

标签: c#

我有以下课程:

public class Fruit
{
    public int FruitID { get; set; }
    public string FruitTitle { get; set; }
    public string FruitName { get; set; }
}

现在我希望将所有FruitTitles都放在string[]

我有一个对象List<Fruit>

5 个答案:

答案 0 :(得分:7)

string[] fruitTitles = fruits.Select(fruit => fruit.FruitTitle)
                             .ToArray();

答案 1 :(得分:3)

如果你有一个清单,试试这个:

添加命名空间:

using System.Linq;

尝试使用Select方法:

string[] FruitTitles = list.Select(x => x.FruitTitle).ToArray();
string[] FruitNames = list.Select(x => x.FruitName).ToArray();

你也可以创建一个anonmymous对象来获取两个字符串,例如:

string[] titleNames = list.Select(x => new { x.FruitTitle, x.FruitName })
                          .ToArray();

有关的更多提示:http://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b

答案 2 :(得分:1)

var fruitTitles = fruits.Select(f => f.FruitTitle).ToArray();

顺便说一句,您可以使用var代替string[]:这是implicit declaration:fruitTitle会自动被识别为字符串数组。

答案 3 :(得分:1)

使用Linq Select运算符,它会将所有FruitTitle投影到数组中

    List<Fruit> fruits = new List<Fruit>();
    var allFruitTitles fruits.Select(f => f.FruitTitle).ToArray(); 

答案 4 :(得分:0)

如果你有一个Fruit的列表,那么你将得到一个FruitTitles列表。

var list = List<Fruit>();
string[] tmp = new string[list.Count];
for(int i=0;i<list.Count;i++)
{
    tmp[i] = list.ElementAt(i).FruitTitle;
}