如何使用项目在列表中查找项目

时间:2012-10-15 06:46:43

标签: c# list

我使用下面的项目列表

Id CategoryName

1  CinemaGallery,CinemaEvents,Cinema

2  CinemaNews, Cinema, CinemaTrailer

3  TamilCinemaNews, TamilCinema, Tamil

现在我必须拆分每个类别名称,并且必须找到包含每个类别的列表。例如,我必须找到仅包含类别名称Cinema或仅CinemaEvents或仅TamilCinema的列表。

我使用了Contains方法,但它返回了每个字符串中包含Cinema的所有列表。

你能帮我吗?

5 个答案:

答案 0 :(得分:1)

然后您只需使用==代替IndexOfContains

var cinema = list.First(i => i.Name == "Cinema");

或使用List.Find

var cinema = list.Find(i => i.Name == "Cinema");

您可以使用Enumerable.WhereList.FindAll查找所有匹配的元素:

var cinemas = list.FindAll(i => i.Name == "Cinema");
cinemas = list.Where(i => i.Name == "Cinema").ToList();

修改(将您的上一次修改考虑在内):

var allCinemasOnly = list
        .Where(l => l.All(cat => cat.CategoryName == "Cinema"))
        .ToList();

答案 1 :(得分:0)

尝试这样的事情:

foreach (string s in myList)
{
    if (s.Contains("Cinema") && !s.Contains("Cinema "))
    {
        //do comething with 's'
    }
}

答案 2 :(得分:0)

试试这个:

List<string> yourNewList = yourList.Select(x => x = "Cinema").ToList();

答案 3 :(得分:0)

You can do like this ..

var itm = list.Find(a =>
        {
            var s = a.Split(Convert.ToChar(",")).ToList();
            return s.Exists(b => b == "Cinema");
        });

答案 4 :(得分:0)

试试这个

var list = yourlist.Where(a => a == "Cinema").ToArray();