[英]How to get a set of values as a list when grouped by a pair of columns
我有一個具有以下值的數據表
id名稱日期
1 a 5/3/2011
1 a 6/4/2011
我想用每個ID /名稱對檢索帶有關聯日期列表的值。
我建議您創建一個封裝所有數據的類,然后可以創建適當類型的List<T>
。 您將在DataTable
中為每個條目創建新類的實例。
如果使用強類型的數據集,則可以根據需要使用生成的DataRow
類型。
(不清楚“將列表存儲為單個條目”是什么意思-整個表還是每行一個條目?)
沒有用法的上下文很難回答。 這將被正確使用,並傳達給系統的其他部分嗎? 下面假設它未與系統的其他部分通信
var list = (from e in DataTable.Rows.AsEnumerable()
select new {
id = e["id"],
Name = e["Name"],
data = e["data"]
}).ToList()
創建一個映射到您的表的類。 您可以使用EntityFramework,LINQ to SQL,nHibernate或自定義ORM作為這些對象從表中檢索數據。 選擇對象,然后使用LINQ分組運算符創建匿名對象(或帶有日期列表的其他類)。
public class Foo
{
public int ID { get; set; }
public sring Name { get; set; }
public DateTime Date { get; set;
}
public class Bar
{
public int ID { get; set; }
public string Name { get; set; }
public List<DateTime> Dates { get; set; }
}
public class FooDataContext : DbContext
{
IDbSet<Foo> Foos { get; set; }
}
using (var context = new FooDataContext())
{
List<Bar> bars = context.Foos
.GroupBy( f => new { f.ID, f.Name } )
.Select( g => new Bar
{
ID = g.Key.ID,
Name = g.Key.Name,
Dates = g.Select( f => f.Date )
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.