【问题标题】:How to replace value in list at same collection location [duplicate]如何在同一集合位置替换列表中的值[重复]
【发布时间】:2011-04-21 17:08:23
【问题描述】:

如何替换集合列表中同一位置的值?

0 = cat
1 = dog
2 = bird

2替换为snail

【问题讨论】:

  • 您的收藏类型是什么?

标签: c#


【解决方案1】:

你的意思是:

yourCollection[2] = "Snail";

【讨论】:

  • 我怎么没想到?
【解决方案2】:

在更大的List<T> 集合中,您希望找到要替换的索引...与:

 var i = animals.FindIndex(x => x == "Dog");
 animals[i] = "Snail";

【讨论】:

  • FindIndex 不是 Linq,它是 List 上的一个方法,因此不适用于其他集合类型
  • 使用函数'Equals'进行字符串比较。
  • @Greensy 你确定你现在不考虑 Java 吗? :)
  • @Greensy C# 不是 Java 的完整复制/粘贴:D 我很确定代码会产生正确的结果,因为我一直在使用 == 运算符,而且它永远不会失败我。另外,我查看了 == 运算符的参考源。 Equals 和 == 基本上做同样的事情,但你可以用 Equals 做一些调整......这对我来说很少见。
  • 其实==操作符只是调用了静态方法string.Equals(string str)。所以,是的,== 一路走来。
【解决方案3】:
List<string> animals = new List<string>();
animals.Add("cat");
animals.Add("dog");
animals.Add("bird");
animals.Add("fish");

animals.RemoveAt(2);
animals.Insert(2, "snail");

【讨论】:

  • 对于较大的集合不是很有效。为什么不直接使用animals[2] = "snail";
  • 并非所有路径都等长。
  • 为我工作! @LukeH 在我的项目示例中 list[index] = value 不起作用。
  • 请在代码 sn-p 中添加一些上下文,以方便未来的读者。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-02
  • 1970-01-01
  • 2016-01-06
  • 2019-04-20
  • 2018-09-02
  • 2020-06-07
相关资源
最近更新 更多