2014-01-18 48 views
3

我有一个DynamicNode命名的产品,它有产品名称和产品ID。 我需要使用LINQ从DynamicNode产品中选择所有产品ID。使用Linq选择ID

我想是这样

@helper PrintProductYearChart(IEnumerable<DynamicNode> products) 
{ 

    var res = products.select(x => x.filelds['Id']).ToAarray(); 
} 

但它不能正常工作。

可以预先

+0

实际和预期答案有何不同? –

+0

在products.select和x.fields ['Id']有错误。不能解析符号 – Arun

+0

'DynamicNode'的公共接口是什么样的? –

回答

10

Select的操作者LINQ项目的序列中的每个元素到一个新的形式的任何一个help.Thanks。你是你在做什么将项目与“ID”只有一个元素为索引所以它会返回一个元素不仅没有数组标识的

在这里你应该specifiy你想要的ID

@helper PrintProductYearChart(IEnumerable<DynamicNode> products) 
    { 

     var res = products.select(x => x.Id).ToArray(); 
    } 
2
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; } 
}