如何为linq编写字符串串联表达式

本文关键字:字符串 表达式 linq | 更新日期: 2023-09-27 18:20:06

如何为linq编写字符串连接表达式?我有这个:

x => (x.Address1 + " " + x.Address2).Contains("add")

谓词,如果不使用string.Concat方法,我不知道如何为字符串连接编写lambda表达式。所以我有两个表达式(x.Address1" "),我需要将它们连接起来。

如何为linq编写字符串串联表达式

我不明白你为什么不想使用String.Concat。这很好:

var foo = wibble.Select(s => String.Concat("foo", s, "bar"));

回到您的示例,编写x => x.Address1.Contains("add") || x.Address2.Contains("add")

不是更好吗

更新:此链接具有解决方案:NHibernate/MySQL字符串连接

.Contains(foo)中的字符串foo会包含空格吗?如果没有,请尝试Ade的第二个谓词,因为这样可以避免串联。

如果这不起作用,您可能需要从数据库中获得比您需要的更多的对象,并在代码中对它们进行筛选。如果必须这样做,那么可能值得使用像x => x.Address1.Contains(foo[0]) || x.Address2.Contains(foo[0])这样的初始谓词来限制返回的对象数量。我让你来想出一个比这个更好的初始谓词。