C# 在字符串列表中使用相同的名称进行比较

C# 在字符串列表中使用相同的名称进行比较,c#,list,C#,List,我已经列了一张单子 List<string> str = new List<string>(); str.AddRange(new string[] { "ahmedabad", "surat", "vadodara", "rajkot", "bhavnagar", "jamnagar", "gandhidham", "gandhinagar" }); 因此,在这个lmmatch列表中,MatchAddress对象集pincode为null,但我不想为vadodara

我已经列了一张单子

List<string> str = new List<string>();

str.AddRange(new string[] { "ahmedabad", "surat", "vadodara", "rajkot", "bhavnagar", "jamnagar", "gandhidham", "gandhinagar" });
因此,在这个lmmatch列表中,MatchAddress对象集pincode为null,但我不想为vadodara仅设置null,并且具有相同的taluka和村庄名称。 如果taluka和名称不同,则不要将pincode设置为null。

这背后的原因是在lm列表中,pincode和taluka都有vadodara,然后只将pincode设置为null。 但我写的这段代码也为名字vadodara设置了pincode null,其中taluka和gandhinagar不一样

在这段代码之后,我得到了两个对象,它们都设置了pincode null,但我不想只为vadodara设置,它们的名称和taluka都相同


你知道我如何解决这个问题吗?

如下更改你的if

   if (str.Contains(ma.Name) && ma.Name.ToLower().Equals(ma.Taluka.ToLower()))

您只需要在代码中进行更改

if (str.Contains(ma.Name) && ma.Name.Equals(ma.Taluka))

你只需要简单地回答ma.Name=ma.taluka,你的问题不清楚。我看到你有一个字符串列表str,然后你有一个列表lm。然后遍历lm中的每个条目,检查ma.Name和ma.Taluka是否存在于字符串列表str中。如果存在,则将pincode设置为null并更新lmMatch。你面临的问题是什么还不清楚。试试这个。。使字符串pincode=ma.pincode;此外,lm中有两个条目的名称和taluka值相同。因此,lmMatch将有两个pincode为null的条目。如果您只想要vadodara,那么对于lm中的其他条目,请更改名称或taluka名称。在您为这两个条目提供的示例中,以下条件为真;如果(str.Contains(ma.Name)和&str.Contains(ma.Taluka.ToLower())在遍历lm中的每个条目时为ya,那么我不想签入lm列表,其中ma.Name和ma.Taluka都包含相同的名称,然后只设置null。为什么不比较ma.Name==ma.Taluka??我不确定您要查找什么,但请查看list.Intersect、list.Union、list.Join-ToLower()建议使用,因为它是字符串比较。@user6807402-请参阅此处以了解接受答案的最佳做法-
   if (str.Contains(ma.Name) && ma.Name.ToLower().Equals(ma.Taluka.ToLower()))
if (str.Contains(ma.Name) && ma.Name.Equals(ma.Taluka))