双重for循环,第一层循环b,第二层循环a,判断b的变量是否等于a的,相等存放到集合。

解决方案 »

  1.   

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;namespace ConsoleResults
    {
        class Program
        {       
            static void Main(string[] args)
            {
                int[] a = new int[] { 1,3,6,8,9,11,15};
                int[] b = new int[] { 1,1,2,3,5,5,6,6,6,7,8,9,9,11,14,14,15};
                test(a, b);
                Console.ReadLine();
            }        static void test(int[] a, int[] b)
            {
                List<int> c = new List<int>(); 
                foreach (var itemB in b)
                {
                    if (a.Contains(itemB))
                    {
                        Console.WriteLine(itemB);
                    }
                }
               
            }
        }
    }写好代码了
      

  2.   

    Linq:是不是很简单?请忽略变量命名方式
                int[] a = new int[] { 1, 3, 6, 8, 9, 11, 15 };
                int[] b = new int[] { 1, 1, 2, 3, 5, 5, 6, 6, 6, 7, 8, 9, 9, 11, 14, 14, 15 };
                var linq1=from bNum in b
                          join  aNum in a on bNum equals aNum
                          select bNum ;
                foreach (var v in linq1)
                {
                    listBox1.Items.Add(v);
                }
      

  3.   

    int[] result = b.Where(x => a.Contains(x)).ToArray();
      

  4.   

    用linq可以很方便处理数组这类的东西。
      

  5.   

    linq:
     int[] a = new int[] { 1, 3, 6, 8, 9, 11, 15 };
                int[] b = new int[] { 1, 1, 2, 3, 5, 5, 6, 6, 6, 7, 8, 9, 9, 11, 14, 14, 15 };
                
                var linq1 = from bNum in b
                            join aNum in a on bNum equals aNum
                            select bNum;            var lst = linq1.ToList().ToArray();   //得到int数组lambda:
    int[] a = new int[] { 1, 3, 6, 8, 9, 11, 15 };
    int[] b = new int[] { 1, 1, 2, 3, 5, 5, 6, 6, 6, 7, 8, 9, 9, 11, 14, 14, 15 };var lst2 = b.Where(x => a.Contains(x)).ToArray();  //得到int数组相对来说着2种方法比传统的循环要简洁。
      

  6.   

    都是linq,只是一个用表达式,一个用操作符,仅仅写法不同。
    第一个也可以写
    b.Join(a, bNum => bNum, aNum => aNum, (aNum, bNum) => bNum);
    第二个也可以写
    from x in b
    where a.Contains(x)
    select x;
    另外连续调用ToList ToArray毫无意义。
      

  7.   

    都是linq,只是一个用表达式,一个用操作符,仅仅写法不同。
    第一个也可以写
    b.Join(a, bNum => bNum, aNum => aNum, (aNum, bNum) => bNum);
    第二个也可以写
    from x in b
    where a.Contains(x)
    select x;
    另外连续调用ToList ToArray毫无意义。
    我怎么只会最笨的方法      从头开始看书吧
      

  8.   


    接下来如果需要该数组的元素个数(lst 或lst2),或者所有元素的和,平均值,怎样可以得到呢?
      

  9.   

    求和:Sum()
    平均值:Average()
      

  10.   

    求和:Sum()
    平均值:Average()
    交集当中元素的个数怎么得到呢?
      

  11.   

    var c = a.Intersect(b);就是交集咯。
    然后count一下。