首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在c#中的多个List <User>中拆分List <User>

在C#中,如果你有多个List<User>,并且想要将它们拆分成单个的List<User>,你可以使用以下方法:

  1. 使用List<T>.GetRange()方法:
代码语言:csharp
复制
List<User> list1 = new List<User>();
List<User> list2 = new List<User>();
List<User> list3 = new List<User>();

// 将原始列表拆分成多个列表
List<List<User>> splitLists = new List<List<User>> { list1, list2, list3 };

int startIndex = 0;
int batchSize = (int)Math.Ceiling((double)originalList.Count / splitLists.Count);

foreach (List<User> splitList in splitLists)
{
    int endIndex = Math.Min(startIndex + batchSize, originalList.Count);
    splitList.AddRange(originalList.GetRange(startIndex, endIndex - startIndex));
    startIndex = endIndex;
}
  1. 使用System.Collections.Concurrent.Partitioner类:
代码语言:csharp
复制
List<User> originalList = new List<User>();
List<User> list1 = new List<User>();
List<User> list2 = new List<User>();
List<User> list3 = new List<User>();

var partitioner = Partitioner.Create(originalList, true);

Parallel.ForEach(partitioner, (user) =>
{
    // 根据需要,可以在此处添加条件以将用户添加到特定列表中
    if (user.SomeProperty == "SomeValue")
    {
        list1.Add(user);
    }
    else if (user.SomeProperty == "AnotherValue")
    {
        list2.Add(user);
    }
    else
    {
        list3.Add(user);
    }
});

这两种方法都可以将一个List<User>拆分成多个List<User>GetRange()方法适用于将列表均匀地拆分成多个部分,而Partitioner类适用于根据特定条件将列表拆分成多个部分。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

共32个视频
动力节点-Maven基础篇之Maven实战入门
动力节点Java培训
Maven这个单词的本意是:专家,内行,读音是['meɪv(ə)n]或['mevn]。Maven 是目前最流行的自动化构建工具,对于生产环境下多框架、多模块整合开发有重要作用,Maven 是一款在大型项目开发过程中不可或缺的重要工具,Maven通过一小段描述信息可以整合多个项目之间的引用关系,提供规范的管理各个常用jar包及其各个版本,并且可以自动下载和引入项目中。
共49个视频
动力节点-MyBatis框架入门到实战教程
动力节点Java培训
Maven是Apache软件基金会组织维护的一款自动化构建工具,专注服务于Java平台的项目构建和依赖管理。Maven 是目前最流行的自动化构建工具,对于生产环境下多框架、多模块整合开发有重要作用,Maven 是一款在大型项目开发过程中不可或缺的重要工具,Maven通过一小段描述信息可以整合多个项目之间的引用关系,提供规范的管理各个常用jar包及其各个版本,并且可以自动下载和引入项目中。
领券