C# 为C中的每个表达式向lambda添加一个条件
基本上我想这样做C# 为C中的每个表达式向lambda添加一个条件,c#,lambda,C#,Lambda,基本上我想这样做 foreach (var TA in TheToAddresses) { if(TA.ToLower () != "a@a.com") { _message.ToRecipients.Add(TA); } } 如何修改 这一行是否也包括条件? 谢谢 如果ToRecipients的类型为List,则可以编写: _message.ToRecipients.AddRange(TheToAddresses.Where(TA => TA.T
foreach (var TA in TheToAddresses)
{
if(TA.ToLower () != "a@a.com")
{
_message.ToRecipients.Add(TA);
}
}
如何修改
这一行是否也包括条件?
谢谢
如果ToRecipients的类型为List,则可以编写:
_message.ToRecipients.AddRange(TheToAddresses.Where(TA => TA.ToLower() != "a@a.com"));
如果ToRecipients的类型为List,则可以编写:
_message.ToRecipients.AddRange(TheToAddresses.Where(TA => TA.ToLower() != "a@a.com"));
可以通过使用{}包装多行lambda方法来编写该方法:
TheToAddresses.ForEach(TA =>
{
if(TA.ToLower () != "a@a.com")
{
_message.ToRecipients.Add(TA);
}
});
可以通过使用{}包装多行lambda方法来编写该方法:
TheToAddresses.ForEach(TA =>
{
if(TA.ToLower () != "a@a.com")
{
_message.ToRecipients.Add(TA);
}
});
你写的几乎是对的。LINQ不应该有副作用。看
唯一的一点是,如果你想进行不区分大小写的比较,你不知道,从字符串开始,你写的几乎是正确的。LINQ不应该有副作用。看
唯一的一点是,如果你想进行不区分大小写的比较,你不知道,从字符串开始,它真正开始变得毛茸茸的什么是_message.ToRecipients类型?如果没有ForEach,可能会有更好的解决方案。什么类型的_message.ToRecipients?如果没有ForEach,可能会有更好的解决方案。默认情况下,IEnumerable在LINQ命名空间中不包含ForEach扩展方法。只有List有这样一个方法。没错,但是加载项是一个List,因为Ienumerable没有Add方法,这是IList InterfaceEyes的一个方法,但返回Ienumerable而不是List。@它可以工作。这是一个有效的解决方案。但是,它消耗更多的时间和内存来创建新的列表和分配它所需的内存。在默认情况下,当InEdabess中的行计数不包含LINQ命名空间中的FACH扩展方法时,我不考虑多行lambda。只有List有这样一个方法。没错,但是加载项是一个List,因为Ienumerable没有Add方法,这是IList InterfaceEyes的一个方法,但返回Ienumerable而不是List。@它可以工作。这是一个有效的解决方案。但是,它消耗更多的时间和内存,用于创建新的列表和分配它所需的内存。我不考虑多行lambda,当行数与在其他ANWSER中相同的问题相同时,在那里返回I枚举。Linq namesapce中没有名为ForEach的扩展方法。这与其他anwser中的问题相同,其中返回IEnumerable。Linq名称空间中没有名为ForEach的扩展方法。
TheToAddresses.Where(address => address.ToLower() != "a@a.com").ToList().ForEach(TA => _message.ToRecipients.Add(TA));
TheToAddresses.ForEach(TA =>
{
if(TA.ToLower () != "a@a.com")
{
_message.ToRecipients.Add(TA);
}
});
TheToAddresses.Where(ta => ta.ToLower() != "a@a.com")
.ForEach(TA => _message.ToRecipients.Add(TA));
foreach (var TA in TheToAddresses)
{
if(!StringComparer.OrdinalIgnoreCase.Equals(TA, "a@a.com"))
{
_message.ToRecipients.Add(TA);
}
}