假设我有一个包含字符串的List<dynamic>
对象:
var dlist = new List<dynamic>()
{
"test",
"test2",
"test3"
};
有没有一种有效的方法将这个列表转换为一个正确的List<string>
对象?我知道我可以遍历这个列表并将每个元素强制转换为字符串,然后将其添加到结果列表中,但也许一些Linq魔法可以在一行中完成这个任务?
我尝试使用一些结合了Select()
、ToList()
和Cast<string>
的语句,但是都没有成功。应该如何正确地完成这个任务呢?
注意:通过说“有效”,我当然是指代码行数。我不考虑执行时间或性能。而且——假设我不需要类型检查,在这个动态列表中始终只有字符串。
编辑:好吧,关于“为什么转换失败”的评论——看起来我有另一个问题,关于我接收到的数据(我正在使用Dapper),所以它没有起作用。对于造成的困惑,我很抱歉,我原本以为我的列表转换出了问题,但实际上与此无关。
dlist.Cast<string>().ToList();
即可。 - Evk