如何在LINQ表达式中包含条件替换?
我有一个LINQ表达式,其中一部分是:如何在LINQ表达式中包含条件替换?,linq,entity-framework,linq-to-sql,linq-to-entities,Linq,Entity Framework,Linq To Sql,Linq To Entities,我有一个LINQ表达式,其中一部分是: Select(x => new SelectListItem { Text = x.Child.RoleName, Value = x.Child.RoleName }) 我希望测试Rolename,如果它包含某个值,则返回一个特定的字符串,例如: Select(x => new SelectListItem
Select(x => new SelectListItem
{
Text = x.Child.RoleName,
Value = x.Child.RoleName
})
我希望测试Rolename,如果它包含某个值,则返回一个特定的字符串,例如:
Select(x => new SelectListItem
{
Text = x.Child.RoleName.contains("Admin")?"Admin Account":"Not Admin",
Value = x.Child.RoleName
})
请原谅伪代码,但如果它包含“Admin”,则在下拉列表的“Text”属性中返回“Admin Account”或“Not Admin”
代码应该是什么样子
提前谢谢
编辑
我还需要添加额外的测试
role.Contains("test1))? test1 : role.Contains("test2")?"Test2":role.Contains("Test3")?"Test3":"Test4"
如果您在
Contains
中大写C
,则应该按照您发布的方式进行操作
要回答您的附加问题,您有两个选择
选项#1:堆栈?:类似以下的运算符:
Text = x.Child.RoleName.Contains("Admin") ? "Admin Account" : x.Child.RoleName.Equals("Banana") ? "Banana" : "Something Else"
选项#2:由于上述内容可能很快变得难看,您可能更愿意将逻辑分解为单独的函数。然后你可以做:
Text = CalculateText(x.Child.RoleName)
及
我的代码是一个quess??!!因此,它似乎比我想象的更正确:)出于兴趣,我们如何扩展它来模拟“else-if”场景?谢谢请参见编辑。。。。回答我的问题。如果您还有其他问题,请告诉我,或者按原样接受答案。=)英雄所见略同,见我的编辑。非常感谢。:)接受。
String CalculateText(String rolename)
{
if(rolename.Contains("Admin"))
return "Admin Account";
else if(rolename.Equals("Banana"))
return "Banana";
else
return "Something Else";
}