Re[4]: Помогите пожалуйста разобраться с DataTable
От: dmitry_npi Россия  
Дата: 26.05.12 18:13
Оценка:
Здравствуйте, -n1l-, Вы писали:

_>>А вообще-то, может стоило сделать DISTINCT еще в начале, в запросе?

N>я делал distinct массива, в итоге он возвращает кириешки партия1 партия2, как из этого сделать кириешки партия1
N> кириешки партия2 я недогадался, буду благодарен если подскажите.

Покажите этот запрос, так не могу сказать.

N>и еще можно по подробнее насчет этого кода


 // в исходном массиве данные колонок идут последовательно, колонок всего две, поэтому делим массив на 2 части
 int tableLength = array1.Length / 2;
 // берем половину массива от начала - это будет первая колонка
 var column1 = array1.Take(tableLength).ToList();
 // пропускаем половину массива от началаа и берем столько же - это будет вторая колонка
 var column2 = array1.Skip(tableLength).Take(tableLength).ToList();
 // специальный метод-расширение Zip позволяет "сшить" две "параллельных" последовательности.
 // аргументы:
 //  - второй массив
 //  - лямбда-функция, которая принимает два параметра (элемент первой и второй последовательности) и возвращает элемент результата.
 // В данном случае результат - это анонимный класс (без имени, то есть), с двумя полями Column1 и Column2.
 var result = column1.Zip(column2, (c1, c2) => new { Column1 = c1, Column2 = c2 });


Можно было объявить класс:

public class MyTable
{
   public string Column1 {get; set; }
   public string Column2 {get; set; }
}


И использовать его:
var result = column1.Zip(column2, (c1, c2) => new MyTable() { Column1 = c1, Column2 = c2 });

Ну а можно и просто ручками:

List<MyTable> list = new List<MyTable>();
for(int i=0; i<tableLength; ++i)
{
    MyTable t = new MyTable();
    t.Column1 = column1[i];
    t.Column2 = column2[i];
    list.Add(t);
}
Атмосферная музыка — www.aventuel.net
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.