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
既然无论如何时间都会过去,为什么不选择做些有意义的事情呢
浙公网安备 33010602011771号