![](/img/trans.png)
[英]C# Linq How to select the distinct row count of multiple columns in a datatable
[英]Distinct on multiple columns in datatable
試圖做一個SQL查詢( SELECT DISTINCT (first,second),third FROM table
)會做什么,但是我正在用LINQ和一個數據SELECT DISTINCT (first,second),third FROM table
來做。
編輯
SQL應該看起來像一個Mysql
select first, second, third FROM table group by first, second
DataTable secondTable = new DataTable();
secondTable.Columns.Add("name", typeof(string));
secondTable.Columns.Add("date", typeof(string));
secondTable.Columns.Add("clockIn", typeof(string));
secondTable.Columns.Add("clockOut", typeof(string));
var t4 = (from a in firstTable.AsEnumerable()
select new
{
name = a.Field<string>("name"),
date = a.Field<string>("date"),
clockIn = a.Field<string>("clockIn"),
clockOut = a.Field<string>("clockOut")
}).Distinct();
var t5 = (from a in firstTable.AsEnumerable()
select new
{
name = a.Field<string>("name"),
date = a.Field<string>("date")
}).Distinct();
var t6 = (from d in t5
join a in t4
on new
{
d.name,
d.date
}
equals new
{
a.name,
a.date
}
select secondTable.LoadDataRow(
new object[]
{
d.name,d.date,a.clockIn,a.clockOut
}, false)).ToList();
ViewBag.Data = secondTable;
該代碼的作用是,將t4
和t5
連接到t6
而沒有任何排除。 雖然我的願望是所有的行t4
存在於t5
應該加入t6
上(名稱,日期),並從所有行的基礎上, t5
不存在在t4
應被排除在外。 誰能幫忙嗎?
從您的評論中,您可以按所需字段分組,然后進行分組。
您可以按時鍾輸入或時鍾輸出進行排序,以獲得較少的“隨機”結果。
var t6 = firstTable.AsEnumerable()
.GroupBy(a => new {
name = a.Field<string>("name"),
date = a.Field<string>("date")
}
)
.Select(g => g.First())
//or Select(g => g.OrderBy(a => a.Field<string>("clockIn")).First()
.ToList();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.