我有一個函數:對象爲空用於string.Any(F =>)
public bool IsValidFileSelection(string[] fileNames)
{
bool isValid = false;
// There is no need to check the file types here.
// As it is been restricted by the openFileBrowse
if (fileNames != null && fileNames.Count() > 0)
{
if (fileNames.Count() == 1 &&
fileNames.Any(f => Path.GetExtension(f) == ".jpg"
|| Path.GetExtension(f) == ".png"))
{
isValid = true;
}
else
{
// If multiple files are there. none shoulf be of type .lfa
isValid = fileNames.Any(f => Path.GetExtension(f) == ".jpg"
|| Path.GetExtension(f) == ".png");
}
}
return isValid;
}
我似乎無法找出爲什麼我的使用串[]中的任何(F => Path.GetExtension(。 f)爲f返回一個空對象我正在使用它來試圖查看我的多選打開文件對話框中的文件對象是否都是jpg或png,因爲這是我想允許的唯一類型。路要走這個?爲什麼我對象(六)空?
那麼想必' fileNames'包含一個空值。但目前你的邏輯很奇怪。爲什麼所有對「Count()」的調用?爲什麼兩個不同地方的情況相同?爲什麼在評論中引用lfa文件,然後不在代碼中? –
爲什麼即使有內部的'如果'?無論是否有一個或多個,「Any」檢查都會起作用。 –
該代碼可以大大簡化。對於初學者來說,'fileNames.Count()'應該是'fileNames.Length',並且在你檢查'fileNames.Length == 1'的地方,之後沒有理由使用LINQ,因爲你剛剛確認'fileNames '只包含一個可以被'fileNames [0]'引用的成員。 – Abion47