我有下面的代碼檢查串列有 2 種型別,如果是,代碼可以繼續。有沒有更好的方法來寫這個?
var newGuid = Guid.NewGuid();
var dic = new Dictionary<Guid, List<IMessage>>();
if (!dic.ContainsKey(newGuid))
{
var list = new List<IMessage> { new Message1() };
dic.Add(newGuid, list);
}
var existinglist = dic[newGuid];
existinglist.Add(new Message2());
var goodToGoMessage1 = dic[newGuid].OfType<Message1>().Any();
var goodToGoMessage2 = dic[newGuid].OfType<Message2>().Any();
var goodToGo = goodToGoMessage1 && goodToGoMessage2;
Console.WriteLine(goodToGo);
uj5u.com熱心網友回復:
好吧,代碼作業并且看起來不錯。如果您擔心性能,因此您有數千條訊息,您可以提供可讀性以提高效率:
bool goodToGo, containsMessage1 = false, containsMessage2 = false;
foreach (IMessage m in dic[newGuid])
{
if (!containsMessage1 && m is Message1)
containsMessage1 = true;
if (!containsMessage2 && m is Message2)
containsMessage2 = true;
goodToGo = containsMessage1 && containsMessage2;
if (goodToGo) break;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/527372.html
標籤:C#。网
