我有这行代码:
IEnumerable<double> katlar = ilanlarQuery.ToList()
.Select(r => r.BulunduguKat.Value)
.OrderBy(f => f);
Run Code Online (Sandbox Code Playgroud)
我得到错误因为BulunduguKat.Value
是int,但是katlar
是双倍的.如何BulunduguKat.Value
在此声明中转换为double?谢谢.
最直接的方式:只需转换为double
.通过这样做,你告诉TResult
这个Select
操作的类型是double
- 使这个IEnumerable<double>
IEnumerable<double> katlar = ilanlarQuery.Select(r => (double)r.BulunduguKat.Value)
.OrderBy(f => f);
Run Code Online (Sandbox Code Playgroud)
由于int可以隐式转换为double,因此也可以使用:
IEnumerable<double> katlar = ilanlarQuery.Select<YourType,double>(i => i.BulunduguKat.Value)
.OrderBy(f => f)();
Run Code Online (Sandbox Code Playgroud)
此外,如您所见,您可以删除.ToList()
之前
如果确实BulunduguKat
是Nullable<int>
蒂姆建议的那么你应该决定:
//If you don't want them in the result collection:
var katlar = ilanlarQuery.Where(r => r.BulunduguKat.HasValue)
.Select(r => (double)r.BulunduguKat.Value)
.OrderBy(f => f)
//If you want them with some default value:
var katlar = ilanlarQuery.Select(r => (double)(r.BulunduguKat.HasValue ? r.BulunduguKat.Value : 0))
.OrderBy(f => f);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2862 次 |
最近记录: |