列表集合包含精确字符串
本文关键字:字符串 包含精 集合 列表 | 更新日期: 2023-09-27 18:16:18
我有一个列表集合,并说我要添加3个项目。
list.Add(new ContentDomain() { Id = "1" , Content = "aaa,bbb,ccc,ddd"});
list.Add(new ContentDomain() { Id = "2" , Content = "aa,bb,cc,dd"});
list.Add(new ContentDomain() { Id = "3" , Content = "a,b,c,d"});
现在我想要的是获取在Content属性中只有'a'的行。
就像我尝试过的
list = list.Where(x => x.Content.ToLower().Contains("a")).ToList();
但是那将给我所有的三行。
我想在字符串中搜索精确的字符串。
list.Where(x => x.ToString().ToLower().Split(',').Where(a => a.Trim() == "a").Any()).ToList();
edit:将Count()> 0更改为Any()以获得更好的性能
将其转换为字符串数组,并在数组中查找该字符串。
list = list.Where(x => x.Content.ToLower().Split(',').IndexOf("a")>= 0).ToList();
试试这个:
IList<ContentDomain> returned = new List<ContentDomain>();
foreach(ContentDomain myList in list)
{
var ret = myList.Content.Split(',');
bool exists = (from val in ret
where val.Contains('a')
select true).FirstOrDefault();
if (exists)
returned.Add(myList);
}