Click here to Skip to main content
15,888,401 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
C#
foreach (var item in lst)
                    {
                        SortedList.Add(item);
                        string output = item.AFFICHAGE.ToString().Split('(', ')')[1];
                        lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && string.IsNullOrEmpty(x.CODE3.ToString()) && x.CODE1.ToString().Equals(output) && x.CODE0.ToString().Equals(code0)).OrderBy(x => x.QTE_TOT).ToList();

                        if (int.Parse(item.NIVEAU.ToString()) == 0)
                        {
                            lst = Source.Where(x => x.CODE0 != null && string.IsNullOrEmpty(x.CODE2.ToString()) && string.IsNullOrEmpty(x.CODE1.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString())).OrderBy(x => x.QTE_TOT).ToList();
                        }
                        if (int.Parse(item.NIVEAU.ToString()) == 2)
                        {
                            lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && !string.IsNullOrEmpty(x.CODE3.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE2.ToString().Equals(output) && x.CODE1.ToString().Equals(code0)).OrderBy(x => x.QTE_TOT).ToList();
                            if (lst.FirstOrDefault(x => string.IsNullOrEmpty(x.CODE4.ToString())) != null)
                                lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && string.IsNullOrEmpty(x.CODE4.ToString()) && !string.IsNullOrEmpty(x.CODE3.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE2.ToString().Equals(output) && x.CODE1.ToString().Equals(code0)).OrderBy(x => x.QTE_TOT).ToList();
                        }

                        if (int.Parse(item.NIVEAU.ToString()) == 3)
                        {

                            lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(code0) && x.CODE3.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList();
                            if (lst.FirstOrDefault(x => string.IsNullOrEmpty(x.CODE5.ToString())) != null)
                                lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && string.IsNullOrEmpty(x.CODE5.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(code0) && x.CODE3.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList();

                        }
                        if (int.Parse(item.NIVEAU.ToString()) == 4)
                        {
                            lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList();
                            if (lst.FirstOrDefault(x => string.IsNullOrEmpty(x.CODE6.ToString())) != null)
                                lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && string.IsNullOrEmpty(x.CODE6.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList();


                        }
                        if (int.Parse(item.NIVEAU.ToString()) == 5)
                        {
                            lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList();
                            if (lst.FirstOrDefault(x => string.IsNullOrEmpty(x.CODE7.ToString())) != null)
                                lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && string.IsNullOrEmpty(x.CODE7.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList();

                        }
                        if (int.Parse(item.NIVEAU.ToString()) == 6)
                        {
                            lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList();
                            if (lst.FirstOrDefault(x => string.IsNullOrEmpty(x.CODE8.ToString())) != null)
                                lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && string.IsNullOrEmpty(x.CODE8.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList();

                        }
                        if (int.Parse(item.NIVEAU.ToString()) == 7)
                        {
                            lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList();
                            if (lst.FirstOrDefault(x => string.IsNullOrEmpty(x.CODE9.ToString())) != null)

                                lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && string.IsNullOrEmpty(x.CODE9.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList();

                        }
                        if (int.Parse(item.NIVEAU.ToString()) == 8)
                        {
                            lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE8.ToString()) && x.CODE8.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList();
                            if (lst.FirstOrDefault(x => string.IsNullOrEmpty(x.CODE10.ToString())) != null)
                                lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && string.IsNullOrEmpty(x.CODE10.ToString()) && string.IsNullOrEmpty(x.CODE9.ToString()) && string.IsNullOrEmpty(x.CODE8.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList();

                        }
                        if (int.Parse(item.NIVEAU.ToString()) == 9)
                        {
                            lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE7.ToString()) && x.CODE8.ToString().Equals(item.CODE8.ToString()) && x.CODE9.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList();
                            if (lst.FirstOrDefault(x => string.IsNullOrEmpty(x.CODE11.ToString())) != null)
                                lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && string.IsNullOrEmpty(x.CODE11.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE7.ToString()) && x.CODE8.ToString().Equals(item.CODE8.ToString()) && x.CODE9.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList();
                        }
                        if (int.Parse(item.NIVEAU.ToString()) == 10)
                        {
                            lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE7.ToString()) && x.CODE8.ToString().Equals(item.CODE8.ToString()) && x.CODE9.ToString().Equals(item.CODE9.ToString()) && x.CODE10.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList();
                            if (lst.FirstOrDefault(x => string.IsNullOrEmpty(x.CODE12.ToString())) != null)
                                lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && string.IsNullOrEmpty(x.CODE12.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE7.ToString()) && x.CODE8.ToString().Equals(item.CODE8.ToString()) && x.CODE9.ToString().Equals(item.CODE9.ToString()) && x.CODE10.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList();
                        }
                        if (int.Parse(item.NIVEAU.ToString()) == 11)
                        {
                            lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE7.ToString()) && x.CODE8.ToString().Equals(item.CODE8.ToString()) && x.CODE9.ToString().Equals(item.CODE9.ToString()) && x.CODE10.ToString().Equals(item.CODE10.ToString()) && x.CODE11.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList();
                            if (lst.FirstOrDefault(x => string.IsNullOrEmpty(x.CODE13.ToString())) != null)
                                lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && string.IsNullOrEmpty(x.CODE13.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE7.ToString()) && x.CODE8.ToString().Equals(item.CODE8.ToString()) && x.CODE9.ToString().Equals(item.CODE9.ToString()) && x.CODE10.ToString().Equals(item.CODE10.ToString()) && x.CODE11.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList();
                        }
                        if (int.Parse(item.NIVEAU.ToString()) == 12)
                        {
                            lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE7.ToString()) && x.CODE8.ToString().Equals(item.CODE8.ToString()) && x.CODE9.ToString().Equals(item.CODE9.ToString()) && x.CODE10.ToString().Equals(item.CODE10.ToString()) && x.CODE11.ToString().Equals(item.CODE11.ToString()) && x.CODE12.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList();
                            if (lst.FirstOrDefault(x => string.IsNullOrEmpty(x.CODE14.ToString())) != null)
                                lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && string.IsNullOrEmpty(x.CODE14.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE7.ToString()) && x.CODE8.ToString().Equals(item.CODE8.ToString()) && x.CODE9.ToString().Equals(item.CODE9.ToString()) && x.CODE10.ToString().Equals(item.CODE10.ToString()) && x.CODE11.ToString().Equals(item.CODE11.ToString()) && x.CODE12.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList();
                        }
                        if (int.Parse(item.NIVEAU.ToString()) == 13)
                        {
                            lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE7.ToString()) && x.CODE8.ToString().Equals(item.CODE8.ToString()) && x.CODE9.ToString().Equals(item.CODE9.ToString()) && x.CODE10.ToString().Equals(item.CODE10.ToString()) && x.CODE11.ToString().Equals(item.CODE11.ToString()) && x.CODE12.ToString().Equals(item.CODE12.ToString()) && x.CODE13.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList();
                            if (lst.FirstOrDefault(x => string.IsNullOrEmpty(x.CODE14.ToString())) != null)
                                lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && string.IsNullOrEmpty(x.CODE14.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE7.ToString()) && x.CODE8.ToString().Equals(item.CODE8.ToString()) && x.CODE9.ToString().Equals(item.CODE9.ToString()) && x.CODE10.ToString().Equals(item.CODE10.ToString()) && x.CODE11.ToString().Equals(item.CODE11.ToString()) && x.CODE12.ToString().Equals(item.CODE12.ToString()) && x.CODE13.ToString().Equals(output)).OrderBy(x => x.QTE_TOT).ToList();
                        }
                        if (int.Parse(item.NIVEAU.ToString()) == 14)
                        {
                            lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE7.ToString()) && x.CODE8.ToString().Equals(item.CODE8.ToString()) && x.CODE9.ToString().Equals(item.CODE9.ToString()) && x.CODE10.ToString().Equals(item.CODE10.ToString()) && x.CODE11.ToString().Equals(item.CODE11.ToString()) && x.CODE12.ToString().Equals(item.CODE12.ToString()) && x.CODE13.ToString().Equals(item.CODE13.ToString()) && x.CODE14.ToString().Equals(output)).OrderByDescending(x => x.QTE_TOT).ToList();
                            if (lst.FirstOrDefault(x => string.IsNullOrEmpty(x.CODE16.ToString())) != null)
                                lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && string.IsNullOrEmpty(x.CODE16.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE7.ToString()) && x.CODE8.ToString().Equals(item.CODE8.ToString()) && x.CODE9.ToString().Equals(item.CODE9.ToString()) && x.CODE10.ToString().Equals(item.CODE10.ToString()) && x.CODE11.ToString().Equals(item.CODE11.ToString()) && x.CODE12.ToString().Equals(item.CODE12.ToString()) && x.CODE13.ToString().Equals(item.CODE13.ToString()) && x.CODE14.ToString().Equals(output)).OrderByDescending(x => x.QTE_TOT).ToList();
                        }
                        if (int.Parse(item.NIVEAU.ToString()) == 15)
                        {
                            lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE7.ToString()) && x.CODE8.ToString().Equals(item.CODE9.ToString()) && x.CODE9.ToString().Equals(item.CODE9.ToString()) && x.CODE10.ToString().Equals(item.CODE10.ToString()) && x.CODE11.ToString().Equals(item.CODE11.ToString()) && x.CODE12.ToString().Equals(item.CODE12.ToString()) && x.CODE13.ToString().Equals(item.CODE13.ToString()) && x.CODE14.ToString().Equals(item.CODE14.ToString()) && x.CODE15.ToString().Equals(output)).OrderByDescending(x => x.QTE_TOT).ToList();
                            if (lst.FirstOrDefault(x => string.IsNullOrEmpty(x.CODE17.ToString())) != null)
                                lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && string.IsNullOrEmpty(x.CODE17.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE8.ToString()) && x.CODE8.ToString().Equals(item.CODE9.ToString()) && x.CODE9.ToString().Equals(item.CODE9.ToString()) && x.CODE10.ToString().Equals(item.CODE10.ToString()) && x.CODE11.ToString().Equals(item.CODE11.ToString()) && x.CODE12.ToString().Equals(item.CODE12.ToString()) && x.CODE13.ToString().Equals(item.CODE13.ToString()) && x.CODE14.ToString().Equals(item.CODE14.ToString()) && x.CODE15.ToString().Equals(output)).OrderByDescending(x => x.QTE_TOT).ToList();
                        }
                        if (int.Parse(item.NIVEAU.ToString()) == 16)
                        {
                            lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE7.ToString()) && x.CODE8.ToString().Equals(item.CODE8.ToString()) && x.CODE9.ToString().Equals(item.CODE9.ToString()) && x.CODE10.ToString().Equals(item.CODE10.ToString()) && x.CODE11.ToString().Equals(item.CODE11.ToString()) && x.CODE12.ToString().Equals(item.CODE12.ToString()) && x.CODE13.ToString().Equals(item.CODE13.ToString()) && x.CODE14.ToString().Equals(item.CODE14.ToString()) && x.CODE15.ToString().Equals(item.CODE15.ToString()) && x.CODE16.ToString().Equals(output)).OrderByDescending(x => x.QTE_TOT).ToList();
                            if (lst.FirstOrDefault(x => string.IsNullOrEmpty(x.CODE18.ToString())) != null)
                                lst = Source.Where(x => x.CODE0 != null && int.Parse(item.NIVEAU.ToString()) < int.Parse(x.NIVEAU.ToString()) && string.IsNullOrEmpty(x.CODE18.ToString()) && x.CODE0.ToString().Equals(item.CODE0.ToString()) && x.CODE1.ToString().Equals(item.CODE1.ToString()) && x.CODE2.ToString().Equals(item.CODE2.ToString()) && x.CODE3.ToString().Equals(item.CODE3.ToString()) && x.CODE4.ToString().Equals(item.CODE4.ToString()) && x.CODE5.ToString().Equals(item.CODE5.ToString()) && x.CODE6.ToString().Equals(item.CODE6.ToString()) && x.CODE7.ToString().Equals(item.CODE7.ToString()) && x.CODE8.ToString().Equals(item.CODE8.ToString()) && x.CODE9.ToString().Equals(item.CODE9.ToString()) && x.CODE10.ToString().Equals(item.CODE10.ToString()) && x.CODE11.ToString().Equals(item.CODE11.ToString()) && x.CODE12.ToString().Equals(item.CODE12.ToString()) && x.CODE13.ToString().Equals(item.CODE13.ToString()) && x.CODE14.ToString().Equals(item.CODE14.ToString()) && x.CODE15.ToString().Equals(item.CODE15.ToString()) && x.CODE16.ToString().Equals(output)).OrderByDescending(x => x.QTE_TOT).ToList();
                        }
                        if (lst.Count() != 0 && lst != null)
                        {
                            if (lst.Count() > 1 || int.Parse(lst.FirstOrDefault().NIVEAU.ToString()) <= max)
                            {
                                lst = SortList_(SortedList, Source, lst, max, output);
                            }
                            else
                            {
                                if (lst.Count() != 0 && lst != null)
                                    SortedList.AddRange(lst);
                            }
                        }
                    }


What I have tried:

what I want from this is to get each child from code0, code1, code2 .... code(i) depends on how many levels I have. My problem with this is that I have at least 43 levels and I cannot repeat the same instruction 43 times like this. I've tried to make my list 'lst' as enum and loop I from the codes. any one has any idea how to do it, please?
C#
for(int i=0;i<= int.Parse(item.NIVEAU.ToString()); i++)
                           {
                               var test = lst.Where(x => x == item).ToList();
                               lst=Source.AsDataTable().AsEnumerable().Where(x => x.Field<object>("CODE"+i).Equal())

                           }
Posted
Updated 20-Jul-22 17:52pm
v3

1 solution

:OMG: Wow. I haven't seen code written to be as slow as possible in, uhhh... yeah, quite a long time.

First, remove ALL of the calls .ToString(), then you can get rid of all the calls to int.Parse(). You've got a combination of converting a data item to a string and then immediately parsing it to an integer, multiple times.

That's a LOT of conversions and crap that makes your code unreadable and unperformant.


Next, I have no idea what you're trying to do with this code, but it doesn't look salvageable. I'd probably scrap it all and rethink the problem. You don't describe what "lst" is, what "item" is, what "Source" is, nor what any of the fields are or their possible values, of lack of values (NULL or empty strings.)

Code like this points to a bigger problem. I think your data is not normalized or conditioned in any way before being saved to whatever data store you're using. The code you posted hints at bad data being allowed to get into the data store and whatever code you write against it has to deal with various failures in the data, massaging and coercing it into some usable form.

There may also be a problem of data being stored in data types that should not be used for the data you're storing. For example, storing dates as strings or numeric values you do calculations on as strings.

All of this would need to be fixed before you can start digging into fixing the code you posted.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900