Разбить List на несколько обьектов c List - C#

Узнай цену своей работы

Формулировка задачи:

Задумался как я то кусочками все делить оказалось не так уж просто

List<string> Разбить на несколько List<string> В чем фишка допустим у нас есть листок с 10 магических слов
List<string> ListHome = new List<string>(){"Муть","Порт","Телка","Космос","Стул","Рыло","Нога","Кусок","Гавно", "Лох"};
Обьект что будет иметь мини ListMini по 2 слова, с общего ListHome
public class Conrat
{
     public int Number {get;set;}
     public List<string> ListMini {get;set;}
}
Записуем Листок Обьектов что имеет мини листочки
List<Conrat> ListConrat = new List<Conrat>();
 
for(int i=0; i<ListHome.Count;i++)
{
Conrat obj=new Conrat();
obj.Number = i;
obj.ListMini = ListHome.GetReange(i*ListHome.Count,2);
ListConrat.Add(obj);
 
}
Но это выражение не верно нельзя использовать ListMini.Clear(); , ListMini.Remove(0;2); практически удаляеться все они связаны с обьектами листа остаеться пытаться разбивать по 2 слова GetReange Но к сожалению при итерации следущей ListMini - заполняеться не нужными словами по +2 получаеться ListMini каждый новый обьект 2 , 4 ,6 , 8 ,10 а должно бить ListMini хранил по 2 новых слов 2 , 2 , 2 ,2 , 2 Идея разбить ListHome, на ListMini по 2 слова в листку, в каждом обьекте Conrat И каждый обьект Conrat будет записан в листок обьектов ListConrat

Думаю задача не с легких меня поситила

Ну химичте зеленые человечки

Решение задачи: «Разбить List на несколько обьектов c List»

textual
Листинг программы
var i_всегоПозиций = xDoc_GoodLinks.Root.Elements().Count();
 
            //разбиение входного массива на ХХХ частей
            var nChunks = 100;
            var chunkLength = (int)Math.Ceiling(i_всегоПозиций / (double)nChunks);
            var parts = Enumerable.Range(0, nChunks).AsParallel()
                      .Select(i => xDoc_GoodLinks.Root.Elements().Skip(i * chunkLength)
                                         .Take(chunkLength)
                                         .ToList())
                      .ToList();

Оцени полезность:

14   голосов , оценка 3.786 из 5
Похожие ответы