在列表中找到一个对象元素



我有一个填充狗的数据文件{名称,分类,country,use}行。我做了一个 class 解释狗是什么, list 存储它们。一切都在没有我现在添加的检查的情况下工作。

我想检查列表中是否已经存在狗的名称,所以我添加了此条件:

if(Dog.IndexOf(Fields[0]) == -1)

但是我有错误

参数1:无法在dogs.program.dogs中从'string'转换

这是代码的一部分:

public class Dogs
    {
        public string Name { get; set; }
        public string Classification { get; set; }
        public string Country { get; set; }
        public string Use { get; set; }
    }
    static void Main(string[] args)
    {
        List<Dogs> Dog = new List<Dogs>();
        try
        {
            bool Erreur = false;
            using (StreamReader File = new StreamReader("../../Data/dogs.txt", Encoding.UTF8, true))
            {
                while (!Fichier.EndOfStream)
                {
                    string Line = File.ReadLine();
                    if (!String.IsNullOrWhiteSpace(Line))
                    {
                        string[] Fields = Line.Split('t');
                        if (Fields.Length == 4)
                        {
                            if(Dogs.IndexOf(Fields[0]) == -1)
                            {
                                Dogs AddDog = new Dogs();
                                AddDog.Name = Fields[0];
                                AddDog.Classification = Fields[1];
                                AddDog.Country = Fields[2];
                                AddDog.Use = Fields[3];
                                Chien.Add(AddDog);
                            }
...

如何检查列表中划过的对象的"名称"属性?

您可以使用linq确定是否有一个 Dogs对象, Name等于 Dog中的 Fields[0]

if (!Dog.Any(x => x.Name == Fields[0]))
{
    Dogs AddDog = new Dogs();
    ...

相关内容

最新更新