I have a DynamicNode named products which has product name and  product id. 
I need to select all products id's to a array from the DynamicNode products using LINQ.
I tried something like
 @helper PrintProductYearChart(IEnumerable<DynamicNode> products)
{
    var res = products.select(x => x.filelds['Id']).ToAarray();
}
but its not working correctly.
Can any one help.Thanks in advance
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; }
}
                        The  Select LINQ  operator Projects each element of a sequence into a new form. what you are you doing will project only one element with 'Id' as index  so  it will return one element only not an array of  Id's 
here you should specifiy that you want the ID
   @helper PrintProductYearChart(IEnumerable<DynamicNode> products)
    {
        var res = products.select(x => x.Id).ToArray();
    }
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With