C#中集合的交集:Intersect问题
集合的包含关系常见的有:
Intersect(交集)、Except(差集)、Union(并集)
用法比较简单: L1.Intersect / Except / Union ( L2 )
在实际应用过程中,遇到这样一个问题,代码附下:
namespace countTest { class Program { static int CountCk = 0; static void Main(string[] args) { List<List<string>> mList = new List<List<string>>(); List<string> rawData1 = new List<string> { "A1", "B1", "C1" }; List<string> rawData2 = new List<string> { "A1", "B1", "C2" }; mList.Add(rawData1); mList.Add(rawData2); List<string> rawData3 = new List<string> { "A1", "B1"}; foreach (var item in mList) { foreach (var i in item) { Console.WriteLine(i); } } for (int transation = 0; transation < mList.Count; transation++) { //if ((mList[transation].Intersect(rawData3)).ToList() == rawData3) //{ // CountCk += 1; //} if ((mList[transation].ToString()).Contains((rawData3).ToString())) { CountCk += 1; } } Console.WriteLine(CountCk); Console.ReadKey(); } } }
如上代码所示,我的目的是想找到mList(类型为List<List<string>>,其中每个元素都是 List<string> 类型 ) 中是否包含rawData3(类型为 List<string>),起初我用的是(mList[transation].Intersect(rawData3)).ToList() == rawData3.toList(),然而通过调试发现CountCk并没有执行 +1 操作,随后看到不管是mList[ transation ] 还是 rawData3 都是System.Collections.Generic.List<string>类型的,于是我先分别将其做一个转化,都转化成 string 类型,于是就解决了此问题。
优秀博客推荐:https://www.cnblogs.com/sujulin/p/7137938.html
既然无论如何时间都会过去,为什么不选择做些有意义的事情呢