我有一个对象列表。我感兴趣的是将每个对象的一个属性(一个字符串值)隔离到一个字符串列表中。如何仅使用此字段创建字符串列表,最好使用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"
答案 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();