Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linq |列表上的迭代Groupby<&燃气轮机;_C#_Linq_List_Group By - Fatal编程技术网

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();