c# List的高效率方法
string[] carTypeArr = { "1", "2", "3", "4" };
string[] carTypePartArr = { "1", "4", "4" };
/*以下代码测试List.Except List.Distinct List.Concat List.Union*/
//以下结果集为两个list的差集
label1.Text += "Except:";
var ExceptList = carTypeArr.ToList().Except(carTypePartArr.ToList()).ToList();
foreach (var carType in ExceptList)
{
label1.Text += carType + ",";
}
label1.Text += "\n";
label1.Text += "Distinct:";
//以下结果集为某一个list的非重复子集的集合
var DistinctList = carTypePartArr.ToList().Distinct().ToList();
foreach (var carType in DistinctList)
{
label1.Text += carType + ",";
}
label1.Text += "\n";
label1.Text += "Concat:";
//以下结果集为两个list的合并集合-包含重复项
var ConcatList = carTypePartArr.ToList().Concat(carTypeArr.ToList()).ToList();
foreach (var carType in ConcatList)
{
label1.Text += carType + ",";
}
label1.Text += "\n";
label1.Text += "Union:";
//以下结果集为两个list的合并集合-不包含重复项
var UnionList = carTypePartArr.ToList().Union(carTypeArr.ToList()).ToList();
foreach (var carType in UnionList)
{
label1.Text += carType + ",";
}
以下为运行结果图:
上述四种方法用在对于list有筛选操作时的场景,感觉.net framework对于list的操作还是很丰富的,相较于用类似于linq的方式进行筛选这种可能更加的直接和简单。