Linq刚刚出发

时间:2011-11-28 22:35:08

标签: c# linq format

我只是想自学如何使用Linq。这就是我所拥有的

if (FileReceivers.Exists(t => t.FileName == filename))
{
    //I also want to do a c.Parent = proper FileReceiver
    FileReceivers.Where(t=>t.FileName == filename).First().Clients.Add(c);
}
else
{
    FileReceiver fr = new FileReceiver(filename);
    fr.Clients.Add(c);
    FileReceivers.Add(fr);
}

我有什么想法以正确的方式做到这一点?我真的不想使用Linq两次抓住同样的东西,这会破坏目的。 我想知道格式化的正确方法。

2 个答案:

答案 0 :(得分:5)

var fr = FileReceivers.FirstOrDefault(t=>t.FileName == filename);

if (fr == null) {
    fr = new FileReceiver(filename);
    FileReceivers.Add(fr);
}
fr.Clients.Add(c);

答案 1 :(得分:0)

您始终可以将t => t.FileName == filename的结果传递给匿名类型,并将其用于以后的处理。