我需要獲取自定義類 MyFileData 的 linq 查詢
public class MyFileData
{
private string name;
private string last_mod;
private string file_type;
private long size;
public string Name
{
get { return name; }
set { name = value; }
}
public string LastMod
{
get { return last_mod; }
set { last_mod = value; }
}
public long Size
{
get { return size; }
set { size = value; }
}
public string FileType
{
get { return file_type;}
set { file_type = value; }
}
}
但我想作為沒有像這樣的 file_type 的所有屬性的輸出值
from file in files
select new MyFileData
{
Name = file.Name,
LastMod = file.LastMod,
Size = file.Size,
};
所以沒有“fileType”的輸出
[{"name":"desktop.ini","lastMod":"07.12.2019 10:12:42","size":174,"fileType":null}]
這樣
[{"name":"desktop.ini","lastMod":"07.12.2019 10:12:42","size":174}]
我也想用這樣的擴展名型別對檔案進行分組
from file in files
group file by file.FileType;
但我得到一個錯誤。
檔案是IEnumerable<MyFileData>型別。
在程式的整個端點圖下方:
app.MapGet($"/browse", (string? path, string? group, MyGetFilesInfo myGetFilesInfo) =>
{
IEnumerable<MyFileData> files = myGetFilesInfo.GetFiles(path);
if (group == "true")
{
return
from file in files
select file;
}
var query =
from file in files
select new MyFileData
{
Name = file.Name,
LastMod = file.LastMod,
Size = file.Size,
};
return JsonConvert.SerializeObject(query);
});
uj5u.com熱心網友回復:
簡單來說,可以嘗試使用匿名類
files.Select(x=> new {
Name = x.Name,
LastMod = x.LastMod,
Size = x.Size
});
編輯
導致該錯誤的原因是您的端點回傳了兩種不同的型別,這會讓編譯器感到困惑。
您可以嘗試使用Results.Json回傳 JSON 字串的 Unite 方法。
app.MapGet($"/browse", (string? path, string? group, MyGetFilesInfo myGetFilesInfo) =>
{
IEnumerable<MyFileData> files = myGetFilesInfo.GetFiles(path);
if (group == "true")
{
return Results.Json(files);
}
var query =
from file in files
select new
{
Name = file.Name,
LastMod = file.LastMod,
Size = file.Size
};
return Results.Json(query);
});
uj5u.com熱心網友回復:
您可以嘗試在JsonProperty屬性中設定空值處理。在序列化或反序列化物件時,設定NullValueHandling = NullValueHandling.Ignore會忽略空值。
[JsonProperty("fileType", NullValueHandling = NullValueHandling.Ignore)]
public string FileType
{
get { return file_type;}
set { file_type = value; }
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/446622.html
