从C#</object> </string>中的List <object>获取List <string>

时间:2013-11-25 13:23:26

标签: c# linq

有没有办法从这个列表中提取颜色类型作为列表?

    public List<object1> Color1 = new List<object1>() 
    { new object1{Color=(Color)new ColorConverter().ConvertFrom("#FF016864"), Offset=0, Name="Color1"},
      new object1{Color=(Color)new ColorConverter().ConvertFrom("#FF01706B"), Offset=20, Name="Color2"},
      new object1{Color=(Color)new ColorConverter().ConvertFrom("#FF017873"), Offset=40, Name="Color3"},
      new object1{Color=(Color)new ColorConverter().ConvertFrom("#FF018781"), Offset=60, Name="Color4"},
      new object1{Color=(Color)new ColorConverter().ConvertFrom("#FF31A7A3"), Offset=80, Name="Color5"}
    };

即。我想要这个:

public List<string> ColorNames ...

我需要Color1 List的字符串成员,我该怎么做?

4 个答案:

答案 0 :(得分:7)

LINQ是你的朋友:

List<string> names = Color1.Select(x => x.Name).ToList();

或使用List<T>.ConvertAll

List<string> names = Color1.ConvertAll(x => x.Name);

我个人更喜欢使用LINQ,因为它适用于非列表,但ConvertAll效率稍高,因为它从一开始就知道目标列表的大小。

值得进一步了解LINQ - 它是用于数据转换的令人难以置信的有用的技术集。请参阅MSDN introduction page作为一个很好的起点。

答案 1 :(得分:0)

List<string> ColorNames = Color1.Select(c => c.Name).ToList();

答案 2 :(得分:0)

var result = Color1.Select(x => x.Name).ToList()

你的意思是这个字符串列表吗?

答案 3 :(得分:0)

尝试使用选择:

public List<string> ColorNames = Color1.Select(c => c.Name).ToList();