我正在尝试使用linq解决以下问题(已经通过正常编程解决了它):
http://projecteuler.net/problem=43
我目前有以下内容:
class Program
{
static void Main(string[] args)
{
var range0 = Enumerable.Range(0, 3);
var range1 = Enumerable.Range(0, 3);
var range2 = Enumerable.Range(0, 3);
var combo = from val0 in range0
from val1 in range1
from val2 in range2
where (val0 + val1 + val2 == 3)
select new { value = val0.ToString() + val1.ToString() + val2.ToString() };
foreach( var value in combo )
{
Console.WriteLine(value.value);
}
Console.ReadLine();
}
}
Run Code Online (Sandbox Code Playgroud)
我最终想要扩展此查询以获取9个值,但是目前,我的问题是,如果每个值都是不同的,我如何检查where子句?val0 val1和val3必须不同.
怎么样
where new List<int> { val0, val1, val2 }.Distinct().Count() == 3
&& (val0 + val1 + val2 == 2)
Run Code Online (Sandbox Code Playgroud)