在c#中转换数据类型

时间:2011-11-18 21:01:51

标签: c# type-conversion

以下是我的C#课程:

public class myClass {

     // Some properties irrelevant to the question

     public List<someObject> ListOfStuff { get; set; }
}


public class someObject {

   public string Id { get; set; }

   public string Name { get; set; }
}

问题:是否可以将所有Id提取到一个单独的数组中,将所有Name提取到另一个单独的数组中?

例如,像这样:

 myClass foo;
 // Populate foo...  
 List<string> names = foo.ListOfStuff( what goes here? );

4 个答案:

答案 0 :(得分:5)

您可以使用LINQ的Select方法:

List<string> names = foo.ListOfStuff.Select(x => x.Name).ToList<string>();
List<string> ids = foo.ListOfStuff.Select(x => x.Id).ToList<string>();

答案 1 :(得分:3)

LINQ让这很容易:

var idArray = ListOfStuff.Select(item => item.Id).ToArray();

要获取名称数组,只需在Select()方法中更改您选择的属性。

答案 2 :(得分:2)

以下是完成您要执行的操作的linq查询:

IEnumerable<string> names = foo.ListOfStuff.Select(f => f.Name);
IEnumerable<string> IDs = foo.ListOfStuff.Select(f => f.Id);

如果您想将它们存储在List中,那么只需将ToList()添加到这些查询的末尾:

List<string> IDs = foo.ListOfStuff.Select(f => f.Id).ToList();
List<string> Names = foo.ListOfStuff.Select(f => f.Name).ToList();

答案 3 :(得分:2)

您可以使用LINQ来完成此任务,例如

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