List<string> li = new List<string>();
li.Add("10,11,12,1");
li.Add("10,11,12,13");
var q = from d in li
where d.Contains("1")
select d;
我有一个包含两个值的字符串列表。我有单值“1”,我想获取该字符串中包含值“1”的列表对象,即我想要列表中的第一个对象。如果我使用contains然后它将返回两个列表对象值,那么什么是查询,它给我完美的结果?
答案 0 :(得分:5)
尝试更改
的位置where d.Split(',').Contains("1")
这会将字符串拆分为项目列表,然后检查该项目是否在该列表中。
修改强>
如评论中所述,您不需要ToList()
,因此请更改以上内容。
答案 1 :(得分:2)
如果要直接针对数据库运行此查询,则必须执行以下操作:
var q = from d in li
where d.StartsWith("1,") || d.EndsWith(",1") || d.Contains(",1,")
|| d.Equals("1")
select d;
否则另一个答案在内存中起作用
答案 2 :(得分:1)
你可以试试这个:
List<string> li = new List<string>();
li.Add("10,11,12,1");
li.Add("10,11,12,13");
string searchItem = "1";
var q = from d in li
where ("," + d + ",").Contains("," + searchItem + ",")
select d;
此查询也可以直接用于数据库。
答案 3 :(得分:0)
试试这个:
var q =
from d in li
where d.Split(',').Any(x => x == "1")
select d;