我有一个填充狗的数据文件{名称,分类,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();
...