Список, созданный для номера доставки, общего количества страниц, номера страницы, необходимо найти недостающий номер страницы, если он есть, используя c# - PullRequest
0 голосов
/ 25 мая 2020

Три списка, созданные для данных одного документа, которые содержат номер доставки, общее количество страниц, номер страницы для каждого документа. Теперь мне нужно получить отсутствующий номер страницы для номера доставки как

Для каждого номера доставки (8181828384) у меня будут общие страницы, такие как (05), и номера страниц (01,02,03,04,05) для номер доставки мне нужно получить недостающую страницу, если таковая имеется. пожалуйста, предложите.

 class Student
    {
        public string DeliveryNo { get; set; }
        public string TotalPgs { get; set; }
        public string  Page { get; set; }
    }
        public static void IAReport_Prepare (IBatchNodeData node)
        {

        }

        public static void IAReport_Finish (IBatchNodeData node)
        {
             IBatchNodeData[] customevalues = node.GetStepNode ("CustomValues").GetDescendantNodes(1);
             IBatchNodeData[] Docs = node.GetStepNode ("IAReport").GetDescendantNodes(1);
            // List<string> data = new List<string>();

            //  List<string[]> EmpDtls = new List<string[]>(); 

           IList<Student> studentList = new List<Student>();

              foreach (IBatchNodeData doc in customevalues)
             {
                string  Deliveryno  =  doc.ReadString("SapDeliveryNo");
                string totpages  =  doc.ReadString("TotalPages");
                string pageno  =  doc.ReadString("PageNumber");                 



        new Student() { DeliveryNo = Deliveryno, TotalPgs = totpages , Page = pageno } ;

           }
var groupedResult = from s in studentList group s by s.DeliveryNo;


foreach (var ageGroup in groupedResult) // getting error here please suggest.
{
    Console.WriteLine("Age Group: {0}", ageGroup .Key); //Each group has a key 

     foreach(Student s in ageGroup)` // Each group has inner collection
        Console.WriteLine("Student Name: {0}", s.Page);
}

1 Ответ

0 голосов
/ 25 мая 2020

Думаю, можно отсортировать данные по номеру доставки и номеру страницы и отфильтровать по последней странице и номеру новой страницы

foreach (var doc in customevalues.OrderBy(p => p.DeliveryNumber).ThenBy(p => p.PageNumber))
{
    if (currentDeliveryNumber != page.DeliveryNumber)
    {
        currentDeliveryNumber = page.DeliveryNumber;
        lastPage = 0;
    }

    var pageDiff = page.PageNumber - (lastPage + 1);

    if (pageDiff > 0)
    {
        do
        {
            var numberPage = lastPage + pageDiff;
        }
        while (--pageDiff > 0);
    }
    lastPage = page.PageNumber;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...