开发者

How to extract results from a Linq query?

开发者 https://www.devze.com 2023-01-14 07:33 出处:网络
class Program { static void Main(str开发者_JAVA技巧ing[] args) { MyDatabaseEntities entities = new MyDatabaseEntities();
class Program
{
    static void Main(str开发者_JAVA技巧ing[] args)
    {
        MyDatabaseEntities entities = new MyDatabaseEntities();

        var result = from c in entities.Categories
                        join p in entities.Products on c.ID equals p.IDCategory
                        group p by c.Name into g
                        select new
                        {
                            Name = g.Key,
                            Count = g.Count()
                        };

        Console.WriteLine(result.ToString());
        Console.ReadLine();
    }
}

How can I extract the values from ths result set so I can work with them?


foreach (var item in result)
{
    var name = item.Name;
    var count = item.Count;
    ...
}

This will only work inside the same method where the LINQ query is located, since the compiler will only then know which properties are available in the anonymous object type (new { }) used in your LINQ select.

If you return a LINQ query to a calling method, and you want to access it in the way shown above, you'd have to define an explicit type and use it in your LINQ query:

class NameCountType
{
    public string Name { get; set; }
    public int Count { get; set; }
}

...

return from ... in ...
       ...
       select new NameCountType
              {
                  Name = ...,
                  Count = ...,
              };


For example:

foreach (var x in result)
{
   Console.WriteLine(x.c.Name);
}


 var results = (from myRow in ds.Tables[0].AsEnumerable()
                  where myRow.Field<String>("UserName") == "XXX"
                  select myRow).Distinct();
 foreach (DataRow dr in results)
    UserList += " , "+dr[0].ToString();
0

精彩评论

暂无评论...
验证码 换一张
取 消