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

既然无论如何时间都会过去,为什么不选择做些有意义的事情呢
原文地址:https://www.cnblogs.com/xiaodongsuibi/p/8630644.html