[英]Select Id(s) using Linq
我有一个名为products的DynamicNode
产品,它有产品名称和产品ID。 我需要使用LINQ从DynamicNode
产品中选择所有产品id到数组。
我试过类似的东西
@helper PrintProductYearChart(IEnumerable<DynamicNode> products)
{
var res = products.select(x => x.filelds['Id']).ToAarray();
}
但它不能正常工作。
任何人都可以提供帮助。谢谢
Select
LINQ运算符将序列的每个元素投影到新表单中。 你在做什么只会投射一个'Id'作为索引的元素,所以它只返回一个元素而不是Id的数组
在这里你应该指明你想要的ID
@helper PrintProductYearChart(IEnumerable<DynamicNode> products)
{
var res = products.select(x => x.Id).ToArray();
}
class Program
{
static void Main(string[] args)
{
var collection = new List<DynamicNode>(){
new DynamicNode { Id = "1", Name = "name1"},
new DynamicNode { Id = "2", Name = "name2"}
};
//Getting Ids using extension methods and lambda expressions
string[] Ids = collection.Select(x => x.Id).ToArray();
foreach (string id in Ids)
Console.WriteLine(id);
//Gettings ids using linq expression
var linqIds = from s in collection
select s.Id;
string[] lIds = linqIds.ToArray();
foreach (string id in lIds)
Console.WriteLine(id);
Console.Read();
}
}
class DynamicNode
{
public string Id { get; set;}
public string Name { get; set; }
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.