从对象列表生成字符串列表

时间:2014-12-09 15:26:23

标签: c# .net linq

我有一个对象列表。我感兴趣的是将每个对象的一个​​属性(一个字符串值)隔离到一个字符串列表中。如何仅使用此字段创建字符串列表,最好使用Linq而不是手动循环?

class MyObj
{
  int ID {get;set;}
  int AnotherID (get;set;}
  string IneedThis {get;set;}
}

List<MyObj> sampleList = somehow_this_is_populated();
List<string> ls = how do I get this list with values equal to "sampleList.IneedThis"

3 个答案:

答案 0 :(得分:4)

您可以Select您的财产并创建一个列表,如:

List<string> ls = sampleList.Select(item => item.IneedThis).ToList();

确保包含using System.Linq;

您也可以使用foreach循环实现相同的目标:

List<string> ls = new List<string>();
foreach (MyObj myObj in sampleList)
{
    ls.Add(myObj.IneedThis);
}

确保您的班级属性为public。在您当前的课程中,没有访问修饰符,将被视为private。将它们定义为:

public string IneedThis { get; set; }

答案 1 :(得分:1)

你可以尝试这个:

List<string> ls = sampleList.Select(x=>x.IneedThis).ToList();

答案 2 :(得分:1)

使用LINQ。

List<string> ls = sampleList.Select(obj => obj.IneedThis).ToList();