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); } }
} } }写好代码了
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); }
int[] result = b.Where(x => a.Contains(x)).ToArray();
用linq可以很方便处理数组这类的东西。
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种方法比传统的循环要简洁。
都是linq,只是一个用表达式,一个用操作符,仅仅写法不同。 第一个也可以写 b.Join(a, bNum => bNum, aNum => aNum, (aNum, bNum) => bNum); 第二个也可以写 from x in b where a.Contains(x) select x; 另外连续调用ToList ToArray毫无意义。
都是linq,只是一个用表达式,一个用操作符,仅仅写法不同。 第一个也可以写 b.Join(a, bNum => bNum, aNum => aNum, (aNum, bNum) => bNum); 第二个也可以写 from x in b where a.Contains(x) select x; 另外连续调用ToList ToArray毫无意义。 我怎么只会最笨的方法 从头开始看书吧
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);
}
}
}
}
}写好代码了
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);
}
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种方法比传统的循环要简洁。
第一个也可以写
b.Join(a, bNum => bNum, aNum => aNum, (aNum, bNum) => bNum);
第二个也可以写
from x in b
where a.Contains(x)
select x;
另外连续调用ToList ToArray毫无意义。
第一个也可以写
b.Join(a, bNum => bNum, aNum => aNum, (aNum, bNum) => bNum);
第二个也可以写
from x in b
where a.Contains(x)
select x;
另外连续调用ToList ToArray毫无意义。
我怎么只会最笨的方法 从头开始看书吧
接下来如果需要该数组的元素个数(lst 或lst2),或者所有元素的和,平均值,怎样可以得到呢?
平均值:Average()
平均值:Average()
交集当中元素的个数怎么得到呢?
然后count一下。