大家帮忙看看这个 linq语句那里出错!!
public void Number() {int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };
int[] numbersB = { 1, 3, 5, 7, 8 };
var pairs =
from a in numbersA,
b in numbersB
where a < b
select new {a, b};
Console.WriteLine("Pairs where a < b:");
foreach (var pair in pairs) {
Console.WriteLine("{0} is less than {1}", pair.a, pair.b); --------------------编程问答-------------------- from a in numbersA,
b in numbersB
就有错,不知道想实现怎样的功能呢 --------------------编程问答-------------------- from a in numbersA,
b in numbersB
应该写成
from a in numbersA
from b in numbersB --------------------编程问答-------------------- 这个写法等于
int[] numbersA = new int[] { 0, 2, 4, 5, 6, 8, 9 };
int[] numbersB = new int[] { 1, 3, 5, 7, 8 };
var pairs = numbersA.SelectMany(delegate (int a) {
return numbersB;
}, delegate (int a, int b) {
return new { a = a, b = b };
}).Where(delegate (<>f__AnonymousType0<int, int> <>h__TransparentIdentifier8) {
return (<>h__TransparentIdentifier8.a < <>h__TransparentIdentifier8.b);
}).Select(delegate (<>f__AnonymousType0<int, int> <>h__TransparentIdentifier8) {
return new { a = <>h__TransparentIdentifier8.a, b = <>h__TransparentIdentifier8.b };
});
Console.WriteLine("Pairs where a < b:");
foreach (var pair in pairs)
{
Console.WriteLine("{0} is less than {1}", pair.a, pair.b);
}
--------------------编程问答-------------------- 两个from 用的是SelectMany方法实现的,两组数的笛卡尔积 --------------------编程问答-------------------- int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };
int[] numbersB = { 1, 3, 5, 7, 8 };
var pairs = from a in numbersA
from b in numbersB
where a < b
select new {a, b};
Console.WriteLine("Pairs where a < b:");
foreach (var pair in pairs)
{
Console.WriteLine("{0} is less than {1}", pair.a, pair.b);
} --------------------编程问答-------------------- --------------------编程问答-------------------- public void Linq17() {
List customers = GetCustomerList();
var orders =
from c in customers
from o in c.Orders
total = o.Total
where total >= 2000.0M
select new {c.CustomerID, o.OrderID, total};
ObjectDumper.Write(orders);
这个在那里错啊..它提示查询正文必须与SELECT 子句或者GROUP子句结尾... --------------------编程问答-------------------- from o in c.Orders total = o.Total --------------------编程问答-------------------- --------------------编程问答-------------------- 多了一个逗号
var pairs = from a in numbersA
from b in numbersB
where a < b
select new {a, b}; --------------------编程问答--------------------
应该就是楼主想要的效果吧
--------------------编程问答-------------------- 多了个逗号 --------------------编程问答-------------------- 这是啥玩意啊,没懂……
--------------------编程问答--------------------
from a in numbersA,
上面红色的,去掉 --------------------编程问答--------------------
错!!
经测试:
int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };
int[] numbersB = { 1, 3, 5, 7, 8 };
var pairs =
from a in numbersA
from b in numbersB
where a < b
select new {a, b};
Console.WriteLine("Pairs where a < b:");
foreach (var pair in pairs)
{
Console.WriteLine("{0} is less than {1}", pair.a, pair.b);
} --------------------编程问答-------------------- 要资料的,来这里看看
http://lovetech.taobao.com/?search=y&scid=344299108&scname=QVNQLk5FVA%3D%3D&checkedRange=true&queryType=cat
补充:.NET技术 , LINQ