将ID从List <t>转换为string [] </t>

时间:2013-06-17 12:23:45

标签: c#

我有List<MyClass>

MyClass定义为

class MyClass
{
 public string ID{get; set;};
 public string Name{get; set;};
}

现在我想从我拥有的MyClass对象列表中单独收集所有ID,并将其转换为字符串[]。

如何做到这一点?

我不熟悉LINQ。这就是我要问的原因。

我不知道该说什么,但是downvotes让我真的看看LINQ和投影,所以感谢分享这些信息。

3 个答案:

答案 0 :(得分:10)

在LINQ中使用投影:

var ids = myClassList.Select(myClass => myClass.ID).ToArray();

using System.Linq;

Select extension method允许您将类型“投射”为其他类型(包括匿名类型)。使用编译器中的新类型推断机制,您甚至不需要为Select指定通用参数。

在这种情况下,Select将返回IEnumerable<string>

ToArray按照说法在锡上执行,将IEnumerable<T>转换为T[]

投影只是subset of Linq methods的精彩术语,工作由您自己的代码完成(在上面的例子中,这是lambda表达式:myClass => myClass.ID)。 Select方法需要Func<TSource, TResult>,无论您的代码返回的是TResult成为什么,在这种情况下,我们会返回string属性MyClass,所以你获得string

答案 1 :(得分:1)

使用select扩展方法进行简单的LINQ查询:

List<MyClass> collection = new List<MyClass>() {new MyClass(), new MyClass()};
string[] result = collection.Select(b => b.ID).ToArray();

答案 2 :(得分:1)

List<MyClass> list = new List<MyClass>();
var idArray = list.Select(x => x.Id).ToArray();