C# 获取List中相同var1对应var2全部相同时,保留一条数据并取得其他所有var1的数据

在一List中有四个参数,为了取出List中所有相同var1,对应var2全部相同的数据,并保留一条来进行后续处理。

自己的实现方法有些复杂,仅供参考。

首先按照var1的大小顺序进行排序,方便分类。

创建临时List和目标List:

List<classA> tempList = new List<classA>();

List<classA> targetList = new List<classA>();

创建临时变量比较参数:

string compareVar1 = string.Empty;

string compareVar2 = string.Empty;

string multiVar2Var1 = string.Empty;

循环List

foreach(listdata in listA)
{
    if(listdata.var1 != multiVar2Var1)
    {
        //与待比较的序列号不同则说明上一个序列号已经检查完毕
        if(listdata.var1 != compareVar1)
        {
            compareVar1 = listdata.var1;
            compareVar2 = listdata.var2;

            targetList.AddRange(tempList);

            tempList = new List<classA>();
        }
        else if(listdata.var2 == compareVar2)
        {
            tempList.Add(listdata);
        }
        else
        {
            multiVar2Var1 = listdata.var1;
            tempList  = new List<classA>();
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值