如何为linq编写字符串串联表达式
本文关键字:字符串 表达式 linq | 更新日期: 2023-09-27 18:20:06
如何为linq编写字符串连接表达式?我有这个:
x => (x.Address1 + " " + x.Address2).Contains("add")
谓词,如果不使用string.Concat
方法,我不知道如何为字符串连接编写lambda表达式。所以我有两个表达式(x.Address1
和" "
),我需要将它们连接起来。
我不明白你为什么不想使用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])
这样的初始谓词来限制返回的对象数量。我让你来想出一个比这个更好的初始谓词。