Linq返回一个或另一个领域

Kri*_*s-I 1 c# linq

我有一个类型化的数据集,这个类型的数据集有一些字段:id,Code,Screen,NL,FR ..

我对它进行linq查询,好的.

但我想依赖语言返回:id,Code和NL或id,Code和FR

我试过这样的事情(见下文但没有工作).

var res = 
from p in dataTable.AsEnumerable()
where p.Screen.ToUpper() == "WWWWWW" && p.Control.ToUpper() == "OOOO"
select new {p.Id, p.Code, if(lg == "FR") ?? p.FR : p.NL };
Run Code Online (Sandbox Code Playgroud)

谢谢,

Jon*_*eet 5

好吧,如果两种类型相同,你可以使用条件运算符:

var res = from p in dataTable.AsEnumerable()
          where p.Screen.ToUpper() == "WWWWWW" && p.Control.ToUpper() == "OOOO"
          select new {p.Id, p.Code, Foo = lg == "FR" ? p.FR : p.NL };
Run Code Online (Sandbox Code Playgroud)

注意你必须如何命名属性,否则C#编译器无法猜出你想要什么.