简体   繁体   English

列表集合包含完全字符串

[英]List Collection Contains exact string

I have a List Collection and say that i am adding 3 items to them. 我有一个列表集合,并说我正在添加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"});

Now what i want is to fetch the rows that have just 'a' in the Content attribute. 现在我想要的是获取Content属性中只有'a'的行。

Like i tried something like 就像我尝试过类似的东西

list = list.Where(x => x.Content.ToLower().Contains("a")).ToList();

but that would give me all the three rows. 但这会给我三行。

i want to search in a string for the exact string only. 我想在字符串中搜索确切的字符串。

list.Where(x => x.ToString().ToLower().Split(',').Where(a => a.Trim() == "a").Any()).ToList();

编辑:将Count()> 0更改为Any()以获得更好的性能

将其转换为字符串数组,并在数组中查找字符串。

list = list.Where(x => x.Content.ToLower().Split(',').IndexOf("a")>= 0).ToList();

Try this: 尝试这个:

        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);
        }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM