在字符串列表中比较相同的名称

本文关键字:比较 字符串 列表 | 更新日期: 2023-09-27 18:06:12

我已经做了一个列表。

List<string> str = new List<string>();
str.AddRange(new string[] { "ahmedabad", "surat", "vadodara", "rajkot", "bhavnagar", "jamnagar", "gandhidham", "gandhinagar" });
我创建了一个类
class MatchAddress
        {
            public string Name { get; set; }
            public string Taluka { get; set; }
            public string District { get; set; }
            public string Pincode { get; set; }
            public float Rank { get; set; }
        }
List<MatchAddress> lm;
List<MatchAddress> lmmatch.

填写lm列表

lm.Add(new MatchAddress() { District = "vadodara", Taluka = "vadodara", Rank = 1f, Name = "vadodara" });
lm.Add(new MatchAddress() { District = "gandhinagar", Taluka = "gandhinagar", Rank = 1f, Name = "vadodara" });


foreach (MatchAddress ma in lm)
                    {  
                       string pincode ="";
// what logic i write in below then only we got the vadodara because that name are in both taluka and name then only set nulll if any one differ then not set null.
                      if (str.Contains(ma.Name) && str.Contains(ma.Taluka.ToLower()))
                            {
                                    pincode = null;
                            }
 lmmatch.Add(new MatchAddress() { Name = ma.Name, District = ma.District, Pincode = (pincode == null)? null : ma.Pincode , Rank = rank, Taluka = ma.Taluka });
            }

所以在这个lmmatch列表中,MatchAddress对象设置pincode为空,但我不想为vadodara为空,并且具有相同的taluka和村庄名称。如果taluka和name不相同,则不设置pincode为null。

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

因此,在删除这段代码之后,我有两个对象,它们都设置了pincode null,但我不想只对vadodara设置,因为它们的name和taluka相同。

知道怎么解决这个问题吗?

在字符串列表中比较相同的名称

您只需要在代码中更改

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

你只需要比较一下。Name = ma。taluka简单

把if改成如下

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