このメソッドのforeachをlinq式に変換したいと思います。私は2つのtry/catchを持っています。なぜなら、guidのリストまたはguidToFindの中で渡された文字列を有効なguid文字列とみなすことはできないからです。guidの比較でlinqにforeach
他の解決策のように簡潔public static bool IsGuidInList(List<string> guids, string guidToFind)
{
try
{
var guid = new Guid(guidToFind.Trim());
foreach (var g in guids)
{
try
{
var g2 = new Guid(g.Trim());
if (g2 == guid)
return true;
}
catch {} // swallow exception
}
}
catch{} // swallow exception
return false;
}
あなたは速いです。そして、申し訳ありませんが、私は2番目のtry/catchをインクルードするために元のメソッドを修正しました...これは、リスト内の文字列のどれかが良いものではない、つまりguidにキャストできないという意味で、すぐに偽で終了します。リスト内のすべての項目を試行する必要があります。 – Kershaw
空ではありますか?Guidは文字列のGuidsのリストに含まれていますか? –