Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在LINQ表达式中包含条件替换?_Linq_Entity Framework_Linq To Sql_Linq To Entities - Fatal编程技术网

如何在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

我有一个LINQ表达式,其中一部分是:

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";
}