首页
学习
活动
专区
工具
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类适用于根据特定条件将列表拆分成多个部分。

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

相关·内容

  • refseq数据库的特点_eureka如何剔除服务

    在SCOTT HANSELMAN 博客上看到一个好东西《Exploring refit, an automatic type-safe REST library for .NET Standard》,他推荐了一个.NET标准1.4 的自动类型安全的REST库refit。 refit 类似于Java的Retrofit,是一套RESTful架构的.NET客户端实现,基于特性,提供把REST API返回的数据转化为(Plain Ordinary C# Object,简单C#对象),POCO to JSON,网络请求(POST,GET,PUT,DELETE等)封装,内部封装使用HttpClient,前者专注于接口的封装,后者专注于网络请求的高效,二者分工协作。我们的应用程序通过 refit请求网络,实际上是使用 refit接口层封装请求参数、Header、Url 等信息,之后由 HttpClient完成后续的请求操作,在服务端返回数据之后,HttpClient将原始的结果交给 refit,后者根据用户的需求对结果进行解析的过程。

    03
    领券