gpt4 book ai didi

c# - 对列表中的每个项目调用 .ToString() 方法的正确方法是什么?

转载 作者:行者123 更新时间:2023-12-05 08:58:08 28 4
gpt4 key购买 nike

我有一个实现 .ToString() 方法的对象列表。我期待找到一个非常容易为列表中的每个项目调用 .ToString() 方法并获取字符串列表的方法。

这是一种在 foreach 中执行此操作的方法。

List<string> entityNames = new List<string>();
foreach (Entity parent in parents)
{
entityNames.Add(parent.ToString());
}

这是我想出的最好的方法,还有更好的方法吗?

IList<string> entityNames2 = (from parent in parents where true select user.ToString()).ToList();

最佳答案

列表有一个 ConvertAll()完全符合您要求的方法。

要从现有列表生成新列表,您可以这样做

List<string> entityNames = parents.ConvertAll(p => p.ToString());

请注意,parents 必须是一个列表才能工作,该方法没有为 IEnumerables 定义。

对于 IEnumerables,您还可以使用普通的 select(),然后调用 ToList():

parents.Select(p=>p.ToString()).ToList();

(这等同于您在查询语法 中提出的行,但使用了 linq method syntax )

这比 ConvertAll() 效率低一点,在第一种情况下,分配一次正确大小的新列表,在第二种情况下,事先不知道正确的大小,所以新列表需要动态增长。在大多数情况下,这种差异很可能是微不足道的,第二种方法适用于所有 IEnumerable,而不仅仅是列表

关于c# - 对列表中的每个项目调用 .ToString() 方法的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26080430/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com