Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用item在列表中查找项_C#_List - Fatal编程技术网

C# 如何使用item在列表中查找项

C# 如何使用item在列表中查找项,c#,list,C#,List,我有一个使用以下项目的列表 Id CategoryName 1 CinemaGallery,CinemaEvents,Cinema 2 CinemaNews, Cinema, CinemaTrailer 3 TamilCinemaNews, TamilCinema, Tamil Id类别名称 1电影院画廊、电影院活动、电影院 2电影新闻、电影、电影预告片 3泰米尔电影新闻,泰米尔电影,泰米尔 现在我必须拆分每个categoryname,并找到包含每个类别的列表。例如,我必须找到仅包含

我有一个使用以下项目的列表

Id CategoryName 1 CinemaGallery,CinemaEvents,Cinema 2 CinemaNews, Cinema, CinemaTrailer 3 TamilCinemaNews, TamilCinema, Tamil Id类别名称 1电影院画廊、电影院活动、电影院 2电影新闻、电影、电影预告片 3泰米尔电影新闻,泰米尔电影,泰米尔 现在我必须拆分每个categoryname,并找到包含每个类别的列表。例如,我必须找到仅包含Categoryname
Cinema
或仅包含
CinemaEvents
或仅包含
TamilCinema
的列表

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


你能帮帮我吗?

试试这样的方法:

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

然后您只需使用
==
而不是
IndexOf
Contains

var cinema = list.First(i => i.Name == "Cinema");
或者使用
列表。查找

var cinema = list.Find(i => i.Name == "Cinema");
您可以使用
可枚举。其中
或查找所有匹配元素:

var cinemas = list.FindAll(i => i.Name == "Cinema");
cinemas = list.Where(i => i.Name == "Cinema").ToList();
编辑(将上次编辑考虑在内):

试试这个:

List<string> yourNewList = yourList.Select(x => x = "Cinema").ToList();
List yourNewList=yourList.Select(x=>x=“电影院”).ToList();
试试这个

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

举一个你迄今为止尝试过的例子会有所帮助。如果列表中包含多个条目“Cinema”?这是一个不错的编辑后问题。你可以根据示例标准显示预期的输出,这将使问题更清楚。请检查我上面编辑的问题为什么不只是平等?我假设他给出的每一行都包含在列表条目中。从最近的编辑看来,我可能是正确的。它不应该是
。Where(x=>x==“电影院”)
?@MatthewRz:不,它应该是
。Where(x=>x.Name==“电影院”)。First()
@TimSchmelter啊,我没有看到他的更新。@MatthewRz:在更新之前是这样的,现在他需要
。Where(x=>x.Name==“电影院”)。ToList()
You can do like this ..

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