如何将元素添加到List <T>并获取索引?

Mos*_*aou 5 c#

是否有一个函数可以让你添加一个元素List<T>并获取索引作为int后面?List<T>.Add()是一个void并且不返回值.

List.Count-1当你不使用线程时,这是一个解决方案.我的列表是一个静态成员,可以一次使用多个线程访问,使用count-1值完全线程不安全,很容易导致错误的结果.

该指数将用于对每种元素的特定处理.

谢谢!

Ser*_*rvy 10

List的方法不仅仅是线程安全的; 如果你只是List.Add从几个线程反复调用,你很可能会遇到问题.如果您打算首先使用a List,则需要使用某种同步技术,因此您可能还要包含List.Count对该关键部分内部的调用.

你的另一个选择是使用一个旨在由多个线程使用的集合,例如那些线程System.Collections.Concurrent.

  • @MoslemBenDhaou如果您不想使用C#4.0,那么只需"锁定"对列表的所有访问权限. (3认同)
  • +1 - 但只是注意`System.Collections.Concurrent`仅适用于.NET 4.0 (2认同)