我經常在linq嘗試建立一個對象並向它添加屬性時感到沮喪。在linq中建立一個對象 - 添加依賴於其他屬性的屬性
例子:
var blgFiles = Directory.GetFiles(rootFolder, "*.blg", SearchOption.AllDirectories);
var data = blgFiles.Select(file => new
{
BLGFile = file,
CSVFile = Path.ChangeExtension(file, "csv"),
CSVFileExists = File.Exists(CSVFile)
});
這不能編譯,因爲我不能在File.Exists使用CSVFile。
我可能只是這樣做:
CSVFileExists = File.Exists(Path.ChangeExtension(file, "csv"))
但這是多餘的。
我也可以做一個惱人的多種選擇,我手動複製的屬性,然後添加新的:
var data = blgFiles.Select(file => new
{
BLGFile = file,
CSVFile = Path.ChangeExtension(file, "csv")
});
var data2 = data.Select(file => new
{
BLGFile = file.BLGFile,
CSVFile = file.CSVFile,
CSVFileExists = File.Exists(file.CSVFile)
});
我只是想知道...還有什麼別的辦法嗎?我正在尋找可以快速添加屬性並創建對象的方法,其中一些屬性取決於以前屬性的值。