C#比较两个List string是否相等

        /// <summary>
        /// 比较两个List string是否相等
        /// </summary>
        /// <param name="list1"></param>
        /// <param name="list2"></param>
        /// <returns></returns>
        private static bool SameListString(List<string> list1, List<string> list2)
        {
            if (null == list1 && null == list2)
                return true;
            if (null == list1 || null == list2)
                return false;
            if (list1.Count != list2.Count || !list1.All(list2.Contains))
                return false;
            list1.Sort();
            list2.Sort();
            int nCount = list1.Count;
            for(int n=0;n<nCount;n++)
            {
                if (0 != string.Compare(list1[n], list2[n], false))
                {
                    return false;
                }
            }
            return true;
        }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要获取两个 List 中的相同部分,你可以使用 LINQ 的 `Intersect` 方法。下面是一个示例: ```csharp List<int> list1 = new List<int> { 1, 2, 3, 4 }; List<int> list2 = new List<int> { 3, 4, 5, 6 }; List<int> commonItems = list1.Intersect(list2).ToList(); ``` 在上述代码中,`commonItems` 列表将包含 `list1` 和 `list2` 中相同的元素(3 和 4)。 如果你想要获取相同部分的其他类型的对象,你可以使用 `Intersect` 方法的重载版本,并提供自定义的 `IEqualityComparer` 来指定比较逻辑。例如,如果你有一个自定义类 `Person`,你可以按照特定的属性进行比较: ```csharp public class Person { public string Name { get; set; } public int Age { get; set; } } List<Person> list1 = new List<Person> { new Person { Name = "Alice", Age = 25 }, new Person { Name = "Bob", Age = 30 }, }; List<Person> list2 = new List<Person> { new Person { Name = "Bob", Age = 30 }, new Person { Name = "Charlie", Age = 35 }, }; List<Person> commonPeople = list1.Intersect(list2, new PersonComparer()).ToList(); public class PersonComparer : IEqualityComparer<Person> { public bool Equals(Person x, Person y) { return x.Name == y.Name && x.Age == y.Age; } public int GetHashCode(Person obj) { return obj.Name.GetHashCode() ^ obj.Age.GetHashCode(); } } ``` 在上述代码中,`commonPeople` 列表将包含 `list1` 和 `list2` 中具有相同姓名和年龄的 Person 对象。 使用 `Intersect` 方法可以轻松地获取两个 List 的相同部分。根据你的需求,你可能需要进一步处理结果或使用其他方法来实现更复杂的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值