C#按字符串删除列表中的项目

C#按字符串删除列表中的项目,c#,C#,我正在学习C#,我遇到的问题之一是按字符串搜索列表中的项目。它不断出现错误,我不知道如何修复。我一直在网上搜索,没有找到有效的解决方案。可能是我误解了答案,我希望我能通过这种方式找到解决办法 bl = bn.Vind("JA"); Test(bl.Count == 2, "2 bezettingen voor passagier met tekst 'JA' in zijn naam."); public List<Bezetting> Vind(string v)

我正在学习C#,我遇到的问题之一是按字符串搜索列表中的项目。它不断出现错误,我不知道如何修复。我一直在网上搜索,没有找到有效的解决方案。可能是我误解了答案,我希望我能通过这种方式找到解决办法

 bl = bn.Vind("JA");
 Test(bl.Count == 2, "2 bezettingen voor passagier met tekst 'JA' in zijn naam.");



    public List<Bezetting> Vind(string v)
    {
        for (int i = 0; i < _items.Count; i++)
        {
            if (_items.Contains(v)) -- Argument1: cannot convert from 'string' to 'ClassLibrary.Bezettingen'
                return _items;
        }
    }        
}
bl=bn.Vind(“JA”);
测试(bl.Count==2,“2贝塞廷根·沃尔·帕萨吉尔在济纳姆遇到了泰克斯特'贾'”);
公共列表VIN(字符串v)
{
对于(int i=0;i<\u items.Count;i++)
{
if(_items.Contains(v))--Argument1:无法从“string”转换为“ClassLibrary.Bezettingen”
退货(物品);;
}
}        
}
希望这能让我在接下来的日子里继续前进


提前谢谢

您正在查看
列表
对象上的
包含(…)
。这将尝试将
v
的值与列表中的项目进行比较。如果列表中没有字符串,则此操作将不起作用。如果它们是字符串,它将比较整个项目,而不是项目内的项目

你想要像这样的东西。。。(首场比赛)

。。。或者这个。。。(全部比赛)


您正在查看
列表
对象上的
.Contains(…)
。这将尝试将
v
的值与列表中的项目进行比较。如果列表中没有字符串,则此操作将不起作用。如果它们是字符串,它将比较整个项目,而不是项目内的项目

你想要像这样的东西。。。(首场比赛)

。。。或者这个。。。(全部比赛)


我真的不明白你在你的方法里面做什么,这很混乱,但是既然你努力了,我就给你一个解决方案

要在列表中搜索字符串,您可能希望采用以下方法:

public List<YourModel> Search(string keyword)
{
  //here you should populate your list from database or wherever! for now im just initializing it.  
  List<YourModel> myList = new List<YourModel>();
  //you can have inside validation as well e.g:
  if(myList.Any(x=> x.Contains(keyword)))
  {
    //if you simply want to get First Set of Data
    //return myList.FirstOrDefault(x=> x.Contains(keyword));
    return myList.Where(x=> x.Contains(keyword)).ToList();
  }
  else
    return myList; 
}
公共列表搜索(字符串关键字)
{
//在这里,您应该从数据库或任何地方填充您的列表!现在我只是初始化它。
List myList=新列表();
//您还可以进行内部验证,例如:
if(myList.Any(x=>x.Contains(关键字)))
{
//如果您只是想获取第一组数据
//返回myList.FirstOrDefault(x=>x.Contains(关键字));
返回myList.Where(x=>x.Contains(关键字)).ToList();
}
其他的
返回myList;
}

我真的不明白您在您的方法中做了什么,这非常令人困惑,但既然您已经做出了努力,我将给您一个解决方案

要在列表中搜索字符串,您可能希望采用以下方法:

public List<YourModel> Search(string keyword)
{
  //here you should populate your list from database or wherever! for now im just initializing it.  
  List<YourModel> myList = new List<YourModel>();
  //you can have inside validation as well e.g:
  if(myList.Any(x=> x.Contains(keyword)))
  {
    //if you simply want to get First Set of Data
    //return myList.FirstOrDefault(x=> x.Contains(keyword));
    return myList.Where(x=> x.Contains(keyword)).ToList();
  }
  else
    return myList; 
}
公共列表搜索(字符串关键字)
{
//在这里,您应该从数据库或任何地方填充您的列表!现在我只是初始化它。
List myList=新列表();
//您还可以进行内部验证,例如:
if(myList.Any(x=>x.Contains(关键字)))
{
//如果您只是想获取第一组数据
//返回myList.FirstOrDefault(x=>x.Contains(关键字));
返回myList.Where(x=>x.Contains(关键字)).ToList();
}
其他的
返回myList;
}

什么错误?什么是
\u项目
?你到底在做什么?要在列表中搜索吗?使用关键字字符串?然后返回基于该关键字的列表?\u items是一个列表,搜索来自一个字符串。搜索后,它应该给出包含搜索字符串的列表中元素的所有结果。有什么错误?什么是
\u项目
?你到底在做什么?要在列表中搜索吗?使用关键字字符串?然后返回基于该关键字的列表?\u items是一个列表,搜索来自一个字符串。搜索后,它应该给出包含搜索字符串的列表中元素的所有结果。
返回myList.Any(x=>x.Contains(“关键字”)).ToList()无效
.Any()
返回
bool
。谢谢,这帮了大忙!我知道这并不容易,因为我只给了很短的一部分,但我觉得多给就太多了。我仍然收到错误:无法将lambda表达式转换为类型“YourModel”,因为它不是委托类型。是的,它确实需要类似于
。其中(x=>x.YourProp.Contains(关键字))
因为
x
属于
YourModel
类型,而不是
string
@Clint
YourModel
是您在其中具有属性的类。如果没有属性,请确保创建一个类并定义属性。
返回myList.Any(x=>x.Contains(“关键字”)).ToList()无效
.Any()
返回
bool
。谢谢,这帮了大忙!我知道这并不容易,因为我只给了很短的一部分,但我觉得多给就太多了。我仍然收到错误:无法将lambda表达式转换为类型“YourModel”,因为它不是委托类型。是的,它确实需要类似于
。其中(x=>x.YourProp.Contains(关键字))
因为
x
属于
YourModel
类型,而不是
string
@Clint
YourModel
是您在其中具有属性的类。如果你没有属性,请确保你创建了一个类并定义了你的属性。谢谢,让我离你更近了一步。仍然有错误,但我一直在寻找解决方案。编译器错误还是异常?显示
\u项的定义
bezeting的定义
谢谢,让我更近了一步。仍然有错误,但我一直在寻找解决方案。编译器错误还是异常?显示
\u项的定义和
设置的定义
public List<YourModel> Search(string keyword)
{
  //here you should populate your list from database or wherever! for now im just initializing it.  
  List<YourModel> myList = new List<YourModel>();
  //you can have inside validation as well e.g:
  if(myList.Any(x=> x.Contains(keyword)))
  {
    //if you simply want to get First Set of Data
    //return myList.FirstOrDefault(x=> x.Contains(keyword));
    return myList.Where(x=> x.Contains(keyword)).ToList();
  }
  else
    return myList; 
}