Member 11543226 Ответов: 2

Как отсортировать элемент списка и составить еще один список отсортированных элементов?


У меня есть следующие пункты в моем списке, и я хочу отсортировать этот список в нескольких подсписках для дальнейшего процесса.

мои пункты списка,

Таблица=Имя_корпорации$$
Таблица=Customer_Name$$sanjay
Таблица=Cutomer_Name_For_Print_At_Bottom$$sanjay
Таблица 1=Имя_компании$$RWL Healthworld Limited
Таблица 1=Bill_Status$$G
Таблица1=Home_Delievery$$Н
Table2=User_Name$$Nazam
Table2=User_Name$$Nazam
Table2=User_Name$$Nazam
Таблица 3=payment_value$$305.49
Таблица 3=cash_amount_taken$$1000.00
Таблица 3=cash_amount_returned$$694.51
Табл. 3=Тендерное Имя$ $ Наличные
Таблица3=TenderType$$1

Я хочу сделать подсписки типа,
список 1 наличие элементов, которые начинаются с таблицы,
список 2, имеющий элементы, которые начинаются с Таблицы 1,
список 3 элементов парк начинается с таблицы table2,
и так далее; однако количество таблиц

Что я уже пробовал:

Добавленный код

cmd = new MySqlCommand();
                                       cmd.CommandType = CommandType.StoredProcedure;
                                       cmd.CommandText = "sp_GetPosBillDetail_ForPrint";
                                       cmd.Parameters.Add(new MySqlParameter("inParam", onestr));
                                       cmd.Parameters.Add(new MySqlParameter("outParam", "@outParam"));
                                       cmd.Parameters["@outParam"].Direction = ParameterDirection.Output;
                                       cmd.Connection = con1;
                                       table = new DataTable();
                                       DataSet ds = new DataSet();
                                       adapter = new MySqlDataAdapter(cmd);
                                       adapter.Fill(ds);
                                       List<string> dtcol = new List<string>();

                                       for (int i = 0; i < ds.Tables.Count; i++)
                                       {
                                           foreach (DataColumn column in ds.Tables[i].Columns)
                                           {
                                               for (int m = 0; m < ds.Tables[i].Rows.Count; m++)
                                               {
                                                   dtcol.Add(ds.Tables[i] + "$$" + column + "$$" + ds.Tables[i].Rows[m][column].ToString());
                                               }
                                           }
                                       }


Я пробовал писать корпус переключателя, но не работал должным образом.
switch (dtcol[n].Substring(0,5))
                                           {
                                               case "Table":

                                                   break;

                                               case "Table1":                                                 
                                                      break;

                                               case "Table2":
                                                   break;  

но я не знаю количества таблиц, поэтому эта логика невозможна.

RickZeeland

Используете ли Вы данные из DataTable ?

Member 11543226

да

Member 11543226

добавление предыдущего кода пожалуйста посмотрите

2 Ответов

Рейтинг:
0

Karthik_Mahalingam

пробовать

List<string> lst = new List<string>();
          lst.Add("Table=Corporate_Name$$");
          lst.Add("Table=Customer_Name$$sanjay");
          lst.Add("Table=Cutomer_Name_For_Print_At_Bottom$$sanjay");
          lst.Add("Table1=Company_Name$$RWL Healthworld Limited");
          lst.Add("Table1=Bill_Status$$G");
          lst.Add("Table1=Home_Delievery$$N");
          lst.Add("Table2=User_Name$$Nazam");
          lst.Add("Table2=User_Name$$Nazam");
          lst.Add("Table2=User_Name$$Nazam");
          lst.Add("Table3=payment_value$$305.49");
          lst.Add("Table3=cash_amount_taken$$1000.00");
          lst.Add("Table3=cash_amount_returned$$694.51");
          lst.Add("Table3=TenderName$$Cash");
          lst.Add("Table3=TenderType$$1)");

          string[] keys = lst.Select(k => k.Split('=')[0]).Distinct().ToArray();
          Dictionary<string, List<string>> dict = new Dictionary<string, List<string>>();
          foreach (string key in keys)
          {
              dict.Add(key, lst.Where(k => k.StartsWith(key + "=")).ToList());
          }


Member 11543226

НЕ РАБОТАТЬ

Karthik_Mahalingam

какую ценность вы получаете в dtcol ?

Member 11543226

[Таблица$$Corporate_Name$$, System.Коллекции.Универсальный.Список`1[Система.Строка]]

те же данные с добавлением "система.Коллекции.Универсальный.Список`1[Система.Строка]]"

Karthik_Mahalingam

я имею в виду строковые значения

Рейтинг:
0

RickZeeland

Я думаю, вам нужно что-то вроде:

switch (dtcol[n].Substring(0,7)) 
{ 
  case "$$Table$":
...
  case "$$Table1":