C# System.Linq.Dynamic使用??歌剧演员
我想用??运算符,从而避免大型链条必须使用IIF运算符 例如:C# System.Linq.Dynamic使用??歌剧演员,c#,linq,dynamic-linq,C#,Linq,Dynamic Linq,我想用??运算符,从而避免大型链条必须使用IIF运算符 例如: customers.Select ("new (CompanyName as Name, Phone)"); customers.Select ("new (CompanyName as Name, iif (Phone = null, string.Empty, Phone) as Phone)"); customers.Select ("new (CompanyName as Name, (Phone ?? string.E
customers.Select ("new (CompanyName as Name, Phone)");
customers.Select ("new (CompanyName as Name, iif (Phone = null, string.Empty, Phone) as Phone)");
customers.Select ("new (CompanyName as Name, (Phone ?? string.Empty) as Phone)");
或者也许有其他方法可以做到这一点。请参见及 动态linq接受一个字符串并将其转换为linq等价物。 您甚至可以获取源代码表单链接并检查字符串选项的解析 我刚刚查看了图书馆,认为它几乎不可能做你想做的事。
tokenId枚举说明了很多可能的情况 我刚刚打开解析器,看到了这个
private enum TokenId {
Unknown,
End,
Identifier,
StringLiteral,
IntegerLiteral,
RealLiteral,
Exclamation,
Percent,
Amphersand,
OpenParen,
CloseParen,
Asterisk,
Plus,
Comma,
Minus,
Dot,
Slash,
Colon,
LessThan,
Equal,
GreaterThan,
Question,
OpenBracket,
CloseBracket,
Bar,
ExclamationEqual,
DoubleAmphersand,
LessThanEqual,
LessGreater,
DoubleEqual,
GreaterThanEqual,
DoubleBar
}
有点不清楚你想做什么。你能发布更多的代码吗,比如类和尝试?不清楚吗?他基本上是在问,是否可以使用
电话??string.Empty
而不是动态Linq中的iif(Phone=null,string.Empty,Phone)
。我当前正在使用网站上提供的库:。它的新元素没有原始的Microsoft。但它缺乏这种功能,并希望包括。使用Linq非常简单:Table.Select(s=>new{Res s.Field1??=”“});同样,它也非常有效,比如说Table.Select(“new(Field1???”\“as Res)”);有人想要Constibuir吗?谢谢。我认为在这一点上添加null coalesce没有问题,它将在传递到Linq到实体之前进行评估。linq to entities库不会更改。只有这个基于字符串的fascade。因此,无论如何,改进它以支持其他运营商