c# - 创建一个唯一的字典并添加自动增加的整数值

标签 c# linq

如何为每个不同的键添加唯一编号?

最后我想要一个不同键的“集合”,但每个键也应该有一个值,例如current_index_of_collection + 1

elements.SelectMany(p => p.Properties.Keys).Distinct();

示例输出:

Key value
a   1
b   2
c   3
d   4

最佳答案

您是否在寻找 Select((value, index) => ...)

https://msdn.microsoft.com/en-us/library/bb534869(v=vs.110).aspx

var dictionary = elements
  .SelectMany(p => p.Properties.Keys)
  .Distinct()
  .Select((key, index) => new {
     key = key,
     value = index + 1, 
   })
  .ToDictionary(item => item.key, item => item.value);

或者

var array = elements
  .SelectMany(p => p.Properties.Keys)
  .Distinct()
  .Select((key, index) => new KeyValuePair<MyKeyType, int>(key, index + 1))
  .ToArray(); 

关于c# - 创建一个唯一的字典并添加自动增加的整数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46806274/

相关文章:

c# - 使用 SqlBulkCopy 填充非常大的表的最佳方法是什么?

c# - LINQ - 从所有 parent 那里获取所有子记录

c# - 使用 Linq 抛出异常

c# - 如何分块化 IEnumerable<T>,而不会在失败时丢失/丢弃项目?

c# - 如何分组列表并拆分每n条记录?

c# - 通过声卡发出蜂鸣声

c# - 运行单独进程的首选架构

c# - 如何从自定义授权策略向客户端发送有意义的错误

c# - streamwriter 和 binarywriter 有什么区别?

c# - 将 LINQ 序列中的项目发送到返回 void 的方法