-8

I have a List<MyClass>

and MyClass is defined as

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

Now i want to collect all the IDs alone from the List of MyClass objects i have and convert it into string [].

How to accomplish this?

Am not familiar with LINQ. That is why i was asking.

I dont know what to say but the downvotes made me really take a look at LINQ and projections so thanks for sharing that info.

4

3 回答 3

10

在 LINQ 中使用投影:

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

在下面using System.Linq;

Select扩展方法允许您将类型“投影”到其他东西(包括匿名类型)中。使用编译器中的新类型推断机制,您甚至不需要为Select.

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

ToArray正如它在锡上所说的那样,将 转换IEnumerable<T>T[].

投影只是Linq 方法子集的花哨术语,工作由您自己的代码完成(在上述情况下,这是 lambda 表达式:)myClass => myClass.ID。该Select方法采用 a Func<TSource, TResult>,无论您的代码返回什么,都将变成什么TResult,在这种情况下,我们返回 a 的string属性,MyClass因此您得到 a string

于 2013-06-17T12:24:54.423 回答
1

通过使用select扩展方法的简单 LINQ 查询:

List<MyClass> collection = new List<MyClass>() {new MyClass(), new MyClass()};
string[] result = collection.Select(b => b.ID).ToArray();
于 2013-06-17T12:25:39.507 回答
1
List<MyClass> list = new List<MyClass>();
var idArray = list.Select(x => x.Id).ToArray();
于 2013-06-17T12:26:17.800 回答