C# 4.0 我们可以使用DefaultIfEmpty显示默认图像吗?
我有一个相册任务,我需要显示数据库中的图像。假设数据库中没有匹配的图像,我可以使用C# 4.0 我们可以使用DefaultIfEmpty显示默认图像吗?,c#-4.0,C# 4.0,我有一个相册任务,我需要显示数据库中的图像。假设数据库中没有匹配的图像,我可以使用DefaultIfEmpty选择默认图像吗?编辑:已具有合适的重载 您不能为FirstOrDefault()提供默认值,但可以始终使用: // Select the first image, or a default otherwise var image = query.FirstOrDefault() ?? defaultImage; 或者您也可以编写自己的FirstOrDefault重载,当然它接受默认值。
DefaultIfEmpty
选择默认图像吗?编辑:已具有合适的重载
您不能为FirstOrDefault()
提供默认值,但可以始终使用:
// Select the first image, or a default otherwise
var image = query.FirstOrDefault() ?? defaultImage;
或者您也可以编写自己的FirstOrDefault
重载,当然它接受默认值。大概是这样的:
public static T FirstOrDefault<T>(this IEnumerable<T> source,
T defaultValue)
{
// This will only ever iterate once, of course.
foreach (T item in source)
{
return item;
}
return defaultValue;
}
public static T FirstOrDefault(此IEnumerable源代码,
T默认值)
{
//当然,这只会迭代一次。
foreach(源中的T项)
{
退货项目;
}
返回默认值;
}
编辑:已具有合适的重载
您不能为FirstOrDefault()
提供默认值,但可以始终使用:
// Select the first image, or a default otherwise
var image = query.FirstOrDefault() ?? defaultImage;
或者您也可以编写自己的FirstOrDefault
重载,当然它接受默认值。大概是这样的:
public static T FirstOrDefault<T>(this IEnumerable<T> source,
T defaultValue)
{
// This will only ever iterate once, of course.
foreach (T item in source)
{
return item;
}
return defaultValue;
}
public static T FirstOrDefault(此IEnumerable源代码,
T默认值)
{
//当然,这只会迭代一次。
foreach(源中的T项)
{
退货项目;
}
返回默认值;
}
为什么不能在此处使用DefaultIfEmpty?DefaultIfEmpty不是已经有了过载吗?@nawfal:看起来确实有。但是FirstOrDefault不能。为什么不能在这里使用DefaultIfEmpty?DefaultIfEmpty不是已经有了过载吗?@nawfal:看起来确实有。但FirstOrDefault没有。