【发布时间】:2022-07-09 02:38:37
【问题描述】:
我需要为
List<int, string>
内的每个元素添加一个 id/key。
我尝试了使用静态 id 的方法:
for (int i = 0; i < sen.Length; i++)
{
mySentences.Add(new Values { ID = i, Sentence = sen[i] });
}
但是这种方法似乎存在一些问题。我想从列表中间删除例如项目,然后删除项目下的每个项目都应将其 id 更改为 (n - 1)。
那么我该如何申请这个动态id呢?
-
List<>类有一个内置的索引...那你为什么需要另一个呢?
-
@J.Salas 是的,我知道有没有办法将此索引值存储到列表中?
-
@PrasadTelkikar 如果可能的话,我更喜欢将索引存储为 id
-
我可以建议您创建一个自定义集合类,它继承 List 并重载所有在列表中添加或删除元素的方法。如果您打算更改单个元素的 ID,那么我建议您让元素实现 INotifyPropertyChanged 并让集合订阅它并相应地更新。但是,您很快就会意识到这变得非常困难,因为您需要避免某些无限循环场景和其他特殊情况。因此,我建议您不要以集合中索引的 ID 为基础。它会产生一大堆问题。
-
@ThomasAngeland 感谢您的回答。我会试试的。