C#将序列号应用于组项目

马克·里奇曼

我正在尝试按名称对对象集合进行分组,但是我还想在每个组中设置一个顺序的InstanceID属性,这样我就可以做到以下几点:

Name="A", InstanceID=0
Name="A", InstanceID=1
Name="A", InstanceID=2
Name="B", InstanceID=0
Name="C", InstanceID=0
Name="C", InstanceID=1
Name="C", InstanceID=2
Name="D", InstanceID=0
Name="D", InstanceID=1
Name="D", InstanceID=2
Name="D", InstanceID=3

等等。

我假设有后通过LINQ应用于一些投影GroupBy,但我不知道如何内用蓄电池或索引SelectSelectMany

我不想创建一个新的集合,而只修改InstanceID每个元素上设置的现有集合

阿图罗·门恰卡(Arturo Menchaca)

您可以GroupByName,然后为每个组设置InstanceID属性:

var groups = objects.GroupBy(m => m.Name);

foreach (var group in groups)
{
    int index = 0;
    foreach (var item in group)
        item.InstanceID = index++;
}

编辑:

您可以创建扩展方法来ForEach接收项目和索引:

static class Extensions
{
    public static void ForEach<T>(this IEnumerable<T> collection, Action<T> action)
    {
        foreach (var item in collection)
            action(item);
    }

    public static void ForEach<T>(this IEnumerable<T> collection, Action<T, int> action)
    {
        int index = 0;
        foreach (var item in collection)
            action(item, index++);
    }
}

并像这样使用它:

var groups = objects.GroupBy(m => m.Name);
groups.ForEach(g => g.ForEach((o, i) => o.InstanceID = i));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法在C#中获取CPU序列号

来自分类Dev

数据库中的C#序列号问题

来自分类Dev

C#将颜色应用于特定单词

来自分类Dev

Clojure:将密钥应用于序列的每个序列

来自分类Dev

将序列号放入R

来自分类Dev

将数据嵌入序列号

来自分类Dev

在C#中使用WMI查询通过驱动器号获取HDD序列号

来自分类Dev

将条件应用于数据框中的段号

来自分类Dev

将分析权重应用于时间序列数据

来自分类Dev

将分组规则应用于时间序列?

来自分类Dev

将函数应用于R中的时间序列的多行

来自分类Dev

将分组规则应用于时间序列?

来自分类Dev

将函数序列应用于python中的对象

来自分类Dev

Linux的C程序,用于为非root用户获得设备的序列号

来自分类Dev

如何将.patch文件应用于项目?

来自分类Dev

悬停功能仅将更改应用于悬停的项目

来自分类Dev

如何将jQuery动画应用于单个项目?

来自分类Dev

将边距应用于弹性项目

来自分类Dev

将JavaScript按类别应用于多个项目

来自分类Dev

如何将组织事务应用于多个项目

来自分类Dev

jQuery分页-将类应用于项目

来自分类Dev

如何将.patch文件应用于项目?

来自分类Dev

Python:将函数应用于项目列表

来自分类Dev

如何将动画应用于列表中的项目

来自分类Dev

生成序列号

来自分类Dev

在C#中创建一个6位数字的序列号

来自分类Dev

如何在C#中获取硬盘唯一序列号

来自分类Dev

使用C#在字符串中查找4个序列号

来自分类Dev

C# 通过它的序列号获取驱动器的名称