我有一个 List<MyClass>
并被MyClass定义为
class MyClass
{
public string ID{get; set;};
public string Name{get; set;};
}
Run Code Online (Sandbox Code Playgroud)
现在我想从我拥有的MyClass对象列表中单独收集所有ID,并将其转换为string [].
怎么做到这一点?
我不熟悉LINQ.这就是我要问的原因.
我不知道该说什么,但是downvotes让我真的看看LINQ和投影,所以感谢分享这些信息.
Ada*_*rth 10
在LINQ中使用投影:
var ids = myClassList.Select(myClass => myClass.ID).ToArray();
Run Code Online (Sandbox Code Playgroud)
下 using System.Linq;
该Select扩展方法让你"工程"型成别的东西(包括匿名类型).使用编译器中的新类型推理机制,您甚至不需要为其指定泛型参数Select.
在这种情况下,Select将返回一个IEnumerable<string>.
ToArray就像在锡上所说的那样,将其IEnumerable<T>转化为一个T[].
对于Linq方法的子集, Projection只是一个奇特的术语,工作是由您自己的代码完成的(在上面的例子中,这是lambda表达式:) myClass => myClass.ID.该Select方法需要一个Func<TSource, TResult>,无论你的代码返回什么TResult,在这种情况下,我们返回一个string属性,MyClass所以你得到一个string.