如何集成.DefaultIfEmpty()扩展方法,所以我不能使用
.FirstOrDefault() ?? String.Empty;
Run Code Online (Sandbox Code Playgroud)
码:
(from role in roleList
let roleArray = role.RoleId.Split(new char[] { WorkflowConstants.WorkflowRoleDelimiter })
where roleArray.Length.Equals(_SplittedRoleIdArrayLength) &&
HasAccessToCurrentUnit(roleArray[_UnitIndexInRoleId])
select roleArray[_LevelIndexInRoleId]).FirstOrDefault() ?? String.Empty;
Run Code Online (Sandbox Code Playgroud)
ken*_*n2k 14
你可以使用:
var query = ...;
return query.DefaultIfEmpty(string.Empty).First();
Run Code Online (Sandbox Code Playgroud)
但这并没有降低IMO的复杂性.
如果您对扩展方法感兴趣,那么您可以使用以下内容:
public static class Helpers
{
public static string FirstOrEmpty(this IEnumerable<string> source)
{
return source.FirstOrDefault() ?? string.Empty;
}
}
Run Code Online (Sandbox Code Playgroud)
编辑
这种方法不是通用的,因为我们必须使用default(T)它null而不是给我们string.Empty.
| 归档时间: |
|
| 查看次数: |
19797 次 |
| 最近记录: |