我有一个数据文件,其中填充了Dog {名称,分类,国家/地区,使用}行。我做了一个班,解释了什么是狗,并做了一个列表来存储它们。 一切都无需我现在添加的检查。
我想检查列表中是否已存在Dog名称,因此我添加了此条件:
if(Dog.IndexOf(Fields[0]) == -1)
但是我有错误
参数1:在Dogs.Program.Dogs中无法从“字符串”转换
这是代码的一部分:
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);
}
...
如何检查此列表中存储的对象的“名称”属性?
答案 0 :(得分:1)
您可以使用LINQ来确定Dogs
列表中是否有一个Name
与Fields[0]
相等的Dog
对象:
if (!Dog.Any(x => x.Name == Fields[0]))
{
Dogs AddDog = new Dogs();
...