相关疑难解决方法(0)

什么是好处.Cast over.选择?

我有一个类型,其中包含对大多数基类型的隐式转换运算符,并尝试.Cast<string>()在此类型的集合上使用,该集合失败.当我深入研究它时,我注意到cast via as不使用隐式或显式转换,只是不会编译,所以我猜这就是.Cast跌倒的地方.所以这失败了

var enumerable = source.Cast<string>();
Run Code Online (Sandbox Code Playgroud)

但这很有效

var enumerable = source.Select(x => (string)x);
Run Code Online (Sandbox Code Playgroud)

那么Cast有什么好处?当然,这是几个字符较短,但似乎更有限.如果它可以用于转换,除了更紧凑的语法之外还有一些好处吗?

c# linq

35
推荐指数
2
解决办法
1万
查看次数

IEnumerable.Cast()vs IEnumerable.Select()中的强制转换

假设我有一个IEnumerable<int>,我希望将它们转换为ASCII等效字符.

对于一个整数,它只是(char)i,所以总是collection.Select(i => (char)i),但我认为这将是一个有点清洁使用collection.Cast().

任何人都可以解释为什么我InvalidCastException在使用时得到的collection.Cast<char>()却没有collection.Select(i => (char)i)?

编辑:有趣的是,当我打电话时,collection.OfType<char>()我得到一个空集.

c# linq casting enumerable

10
推荐指数
1
解决办法
2404
查看次数

标签 统计

c# ×2

linq ×2

casting ×1

enumerable ×1