我有以下课程:
public class Fruit
{
public int FruitID { get; set; }
public string FruitTitle { get; set; }
public string FruitName { get; set; }
}
现在我希望将所有FruitTitles都放在string[]
。
我有一个对象List<Fruit>
答案 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();
有关linq的更多提示: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;
}