C# Linq |列表上的迭代Groupby<&燃气轮机;
我有一个目标C# Linq |列表上的迭代Groupby<&燃气轮机;,c#,linq,list,group-by,C#,Linq,List,Group By,我有一个目标 public class MasterData { public string loanId { get; set; } public string docId { get; set; } public string fileName { get; set; } public string doctype { get; set; } } 我有一个列表lstmstrdata,它可能看起来像这样 <table> <tr>
public class MasterData
{
public string loanId { get; set; }
public string docId { get; set; }
public string fileName { get; set; }
public string doctype { get; set; }
}
我有一个列表
lstmstrdata,它可能看起来像这样
<table>
<tr>
<th>loanId</th>
<th>docId</th>
<th>docType</th>
</tr>
<tr>
<td>101</td>
<td>8001</td>
<td>BankStatement</td>
</tr>
<tr>
<td>102</td>
<td>8002</td>
<td>CreditReport</td>
</tr>
<tr>
<td>103</td>
<td>8003</td>
<td>PaySlip</td>
</tr>
<tr>
<td>103</td>
<td>8003</td>
<td>Payslip</td>
</tr>
<tr>
<td>104</td>
<td>8004</td>
<td>CreditReport</td>
</tr>
<tr>
<td>105</td>
<td>8006</td>
<td>Mortgage</td>
</tr>
<tr>
<td>105</td>
<td>8007</td>
<td>Mortgage</td>
</tr>
</table>
我试着这样做,但没有得到正确的结果
var groupDoctype = lsMstrData
.GroupBy(g => new {g.doctype, g.docId})
.Select(s => s.ToList())
.ToList();
如果docID保证是唯一的,那么您可以删除“Distinct”,只留下g.Count()
如果docID保证是唯一的,那么您可以删除“Distinct”,只留下g.Count()
var groupDoctype = lsMstrData
.GroupBy(g => new {g.doctype, g.docId})
.Select(s => s.ToList())
.ToList();
var groupDoctype = lsMstrData
.GroupBy(g => g.doctype)
.Select(g => new { Doctype = g.Key, UniqueDocIdCount = g.Select(k => k.docId).Distinct().Count() })
.ToList();