比较使用C#在列表中是否存在用户输入的字符串

用户

我正在尝试比较用户输入的字符串是否存在于列表中,如果确实存在,我想将其从列表中删除。

我收到一个错误:

参数1:无法从“ project.MainClass.Artical”转换为“ string”

我知道我得到它是因为我正在尝试将字符串与列表进行比较。

我有结构:

struct Artical {
  public string name;
  public float price;
  public double weight;
}

和方法:

static void DeleteArtical()
{
    Artical k = new Artical();

    Console.WriteLine("Enter name you want to delete: ");
    k.name = Console.ReadLine();

    List < Artical > articals = new List < Artical > ();
    using(StreamWriter sw = File.AppendText((@ "../../dat.txt"))) {
      if (articals.Exists(x => string.Equals(x, k.name, StringComparison.OrdinalIgnoreCase))) { 
        Console.WriteLine("Done !!");
        artikli.Remove(k);
      }

    }
}

带下划线的x给了我上面提到的错误。

Mong Zhu

该错误来自您试图将类型为的对象Artical进行比较的观点stringxlambda表达式中in表示中的一个元素,List<Artical>因此您需要name使用它来访问属性,因为这是您要比较的:

if (articals.Exists(x => string.Equals(x.name, k.name, StringComparison.OrdinalIgnoreCase)))

请注意,删除

从列表中删除第一次出现的特定对象

此外,您需要确保compare对象中的所有其他值(priceweight)必须与您要查找的匹配,否则该项目将不会被删除!

编辑:

您可以做的是使用FirstOrDefault实际拉出您要查找的结构

此方法:

返回满足条件的序列的第一个元素,如果找不到此类元素,则返回默认值。

默认值是一个空结构,每个属性都有默认值。知道了这一点,您便可以通过检查是否name有价值来检查您的查找过程是否成功如果您已经成功找到该项目,则可以使用相同的对象将其从列表中删除:

Artical objectForRemoval = articals.FirstOrDefault(x => string.Equals(x.name, k.name, StringComparison.OrdinalIgnoreCase));

if (!String.IsNullOrWhiteSpace(objectForRemoval.name))
{
    Console.WriteLine("Done !!");
    articals.Remove(objectForRemoval);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

检查C#中的字符串列表中是否存在字符串

将MySQL连接字符串存储在用户输入的变量中,然后再构建字符串[C#]

将用户输入与字符串数组列表进行比较

使用C#中的一组随机生成的字符串值评估用户的输入

如何将用户输入与列表中的大写字母字符串进行比较?

使用C#检查URL中是否存在非值查询字符串

在c#中使用“Regex”检查字符串数组中是否存在元素

如何通过用户输入检查txt文件中是否存在多个字符串?

如何在用户输入提供的列表中查找字符串或字符串的一部分?

比较Python输入列表中的字符串

查找列表中的列表中是否存在字符串

比较字符串值与用户输入

比较用户输入和字符串

使用powershell检查字符串列表中是否存在字符串

如何将用户输入的字符串与列表中单词的字符(单个字母)进行比较?

使用Scala,如何找出字符串中是否存在字符列表(字符重复的地方)?

验证人是否存在的函数[比较C中的字符串]

在用户输入之前匹配特定的字符串

在用户输入的字符串之间添加空格

检查文件中是否存在输入字符串

检查用户是否仅在字符串中输入字母

在用户输入的参数中传递多个字符串值

将字符串保存在用户无权访问的安全存储中

将列表元素与用户输入的字符串进行比较时,似乎只比较最后输入的列表元素

C#让用户输入字符串到键DES

如何将EditText用户输入存储到c#中的字符串变量中

C#比较字符串中的字符

如何使用C#将字符串值与列表框值进行比较?

检查列表中是否不存在字符串