【发布时间】:2021-06-09 00:59:02
【问题描述】:
假设我有一个包含字符串的List<dynamic> 对象:
var dlist = new List<dynamic>()
{
"test",
"test2",
"test3"
};
是否有任何有效的方法可以将其转换为正确的 List<string> 对象?我知道我可以遍历这个列表并将每个元素转换为一个字符串,然后将其添加到结果列表中,但也许一些 Linq 魔法可以在一行中完成?
我尝试将Select() 与ToList() 和Cast<string> 结合使用,但无济于事。这应该如何正确完成?
注意:我所说的“高效”当然是指代码行数。我不考虑执行时间或性能。另外 - 假设我不需要输入检查,只有在这个动态列表中才会有字符串。
编辑:好的,关于“为什么 Cast 不适合你”的 cmets - 看起来我收到的数据有另一个问题(我正在使用 Dapper),这就是它不起作用的原因.很抱歉造成混淆,我认为我的列表转换有误,而问题与此无关。
【问题讨论】:
-
dlist.Cast<string>().ToList();应该可以。 -
既然知道类型,为什么还要使用
dynamic? -
我很想知道您所说的“但无济于事”是什么意思。发生了什么?
-
TimSchmelter:编辑帖子以添加对“效率”的说明。 @HimBromBeere 我从其他来源收到此列表,它不依赖于我。
-
您仍然没有弄清楚“不起作用”是什么意思。实际上是你在这个问题上的问题是什么?
标签: c#