我正在嘗試使用 LINQ 獲得自定義輸出,我已經制作了自定義類來存盤資料:
public class MyFileData
{
// File Name
public string Name { get; set; }
// File's last modification date
public string LastMod { get; set; }
// File size
public long Size { get; set; }
// File extension
public string FileType { get; set; }
}
所需的輸出應如下所示:
{
"name": "codeblocks-20.03mingw-setup.exe",
"lastMod": "13.03.2022 22:57:47",
"size": 152419674,
},
{
"name": "somefile.png",
"lastMod": "16.01.2022 13:16:06",
"size": 82973864,
},
因此排除其中一個類屬性。另外我想根據檔案擴展名添加組頭,所以看起來像這樣:
"type": ".exe",
"files": [
{
"name": "codeblocks-20.03mingw-setup.exe",
"lastMod": "13.03.2022 22:57:47",
"size": 152419674,
"fileType": ".exe"
},
{
"name": "DiscordSetup.exe",
"lastMod": "16.01.2022 13:16:06",
"size": 82973864,
"fileType": ".exe"
},
...
]
但目前我只能回傳類元素的串列,輸出如下所示:
[
{
"name": null,
"lastMod": null,
"size": 0,
"fileType": ".exe"
},
{
"name": "setup_becastled_0.2.14_(64bit)_(50823).exe",
"lastMod": "13.01.2022 13:00:33",
"size": 281792488,
"fileType": ".exe"
},
{
"name": "basic-miktex-21.12-x64.exe",
"lastMod": "12.01.2022 23:20:32",
"size": 136437512,
"fileType": ".exe"
}]
類方法回傳:
List<MyFileData> list = new(MyFileData){*method getting files*}
return list;
如果分組:
foreach(string fileExtension in fileExtensions)
{
IEnumerable<MyFileData> query =
from file in allFiles
where file.FileType == fileExtension
select file;
sortedFiles.Add(new MyFileData{
FileType = fileExtension });
sortedFiles.AddRange(query.ToList());
}
return sortedFiles;
我需要提示如何使用 LINQ 進行自定義輸出
uj5u.com熱心網友回復:
您可以使用該GroupBy()方法(請參閱檔案)。
假設你有這個:
var myFileDatas = new List<MyFileData>
{
new MyFileData { Name = "codeblocks-20.03mingw-setup.exe", FileType = ".exe", LastMod = "13.03.2022 22:57:47", Size = 152419674 },
new MyFileData { Name = "DiscordSetup.exe", FileType = ".exe", LastMod = "16.01.2022 13:16:06", Size = 82973864 },
new MyFileData { Name = "Abc.zip", FileType = ".zip", LastMod = "01.01.2022 13:16:06", Size = 82973864 }
};
...以下行導致兩組。
var result = myFileDatas.GroupBy(x => x.FileType);
帶有 key 的組".zip"有 1 個條目,帶有 的組".exe"有兩個條目。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/453238.html
