我有一個包含資料列的串列,我想根據不同客戶端代碼的數量創建 n 個串列。
| 客戶代碼 | 序列號 | 條碼 | 評論 |
|---|---|---|---|
| 美國廣播公司 | 123 | AC123 | 好的 |
| 美國廣播公司 | 1234 | BC123 | 好的 |
| 美國廣播公司 | 123 | ABC123 | 失敗的 |
| 美國廣播公司 | 1235 | ABC13 | 好的 |
| ADF | 321 | 321DFF | 好的 |
| ADF | 321 | 332DFF | 好的 |
| AFG | 1234 | 123ADF | 好的 |
| AFG | 1234 | 123ADF | 好的 |
并且通過 ForEachloop 我應該有 n list(tables) 從串列中分組。
| 客戶代碼 | 序列號 | 條碼 | 評論 |
|---|---|---|---|
| 美國廣播公司 | 123 | AC123 | 好的 |
| 美國廣播公司 | 1234 | BC123 | 好的 |
| 美國廣播公司 | 123 | ABC123 | 失敗的 |
| 美國廣播公司 | 1235 | ABC13 | 好的 |
| 客戶代碼 | 序列號 | 條碼 | 評論 |
|---|---|---|---|
| ADF | 321 | 321DFF | 好的 |
| ADF | 321 | 332DFF | 好的 |
| 客戶代碼 | 序列號 | 條碼 | 評論 |
|---|---|---|---|
| AFG | 1234 | 123ADF | 好的 |
| AFG | 1234 | 123ADF | 好的 |
我的最終目標是將它們匯出到 n 個不同的 excel 檔案中,但現在我只想先完成串列。這些是我做過的事情
var ExcelGroupByClient = TotalSN.GroupBy(u => u.Data.ClientCode);
foreach (var Record in ExcelGroupByClient)
{
//My Codes, which I have no idea of what to write.
}
我想不出一種方法可以在 ForEach 回圈中保存 n 個不同的串列
謝謝你們。
我忘了提到我的 ExcelGroupByClient 實際上是串列的 Igrouping。[最終解決方案]
var ExcelGroupByClient = TotalSN.GroupBy(u => u.Data.ClientCode).ToList();
foreach (var Record in ExcelGroupByClient)
{
var Datalist = Record.Select(a => new
{
ClientCode = a.Data.ClientCode,
ItemCode = a.Data.ItemCode,
SerialNo = a.Data.SerialNo,
BarCode = a.Data.BarCode,
Errors = String.Join(" ", a.Errors)
});
}
uj5u.com熱心網友回復:
這是一個顯示如何遍歷分組的片段:
var list = new List<(string ClientCode, int Number)>
{
(ClientCode: "ABC", Number: 123),
(ClientCode: "ABC" , Number: 1235),
(ClientCode: "ADF" , Number: 321 ),
(ClientCode: "ADF" , Number: 1234 )
};
var byClient = list.GroupBy( x => x.ClientCode);
foreach( var group in byClient)
{
Console.WriteLine($"Group's Key: {group.Key}");
foreach(var record in group)
{
Console.WriteLine($" ClientCode: {record.ClientCode} Number: {record.Number}");
}
}
這列印
Group's Key: ABC
ClientCode: ABC Number: 123
ClientCode: ABC Number: 1235
Group's Key: ADF
ClientCode: ADF Number: 321
ClientCode: ADF Number: 1234
uj5u.com熱心網友回復:
您將解決方案發布到問題中,您應該發布答案。只是想指出你可以將你的 foreach 合并到 GroupBy 中,因為 GroupBy 有一個多載,它接受一個應用于輸出的 lambda:
var groups = TotalSN.GroupBy(
u => u.Data.ClientCode,
rs => rs.Select(a => new
{
ClientCode = a.Data.ClientCode,
ItemCode = a.Data.ItemCode,
SerialNo = a.Data.SerialNo,
BarCode = a.Data.BarCode,
Errors = String.Join(" ", a.Errors)
}
);
無論您要使用 datalist 做什么,現在都可以直接應用于 IGrouping
foreach(var datalist in groups){
foreach(var thing in datalist)
...
}
如果您努力為屬于集合的事物使用復數或具有集合風格的名稱,而為不屬于集合的事物使用單數名稱,您將減少自己的困惑。你Record實際上仍然是一個集合,所以 Record.Select 讀起來有點奇怪,因為Record它是一個單數但Select對集合進行操作。
區域變數應該有駝峰命名 ->record
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/449546.html
上一篇:我需要進行oauth2身份驗證才能在C#中訪問gmail
下一篇:c#DataTabletodict多列(例如pythondataframe.to_dict("record"))
