2017-01-24 1 views
1

У меня есть список данных, и я хочу, чтобы сделать массив из двух столбцов как-Как выбрать два столбца в одном межд массив

var array= dataList.Select(a => a.CustomerId, a.EmployerId).ToArray(); 

Пожалуйста, укажите, что это правильный способ сделать массив из двух или больше столбцов в структуре сущностей.

Update

Я также попробовал следующее.

var array= dataList.Select(a => new { a.CustomerId, a.EmployerId }).ToArray(); 

Это дает результат, как следует

enter image description here

Но мне нужно привести следующее.

[0] 5145 
[1] 5155 
[2] 5146 
[3] 5149 

Спасибо.

+1

var array = dataList.Selec t (a => new {a.CustomerId, a.EmployerId}). ToArray(); –

ответ

2

Попробуйте

var array = dataList.SelectMany(a => new int[] { a.EmployerId, a.CustomerId }).ToArray(); 

Это даст вам результат следующим образом

[0] 5145 
[1] 5155 
[2] 5146 
[3] 5149 
2

Вы должны использовать Anonymous Types для этой цели:

var array= dataList.Select(a => new {a.CustomerId, a.EmployerId}).ToArray(); 

или как другое решение создать класс:

public class Person 
{ 
    public int CustomerId { get; set; } 
    public int EmployerId { get; set; } 
} 

Тогда:

var array= dataList.Select(a => new Person{ CustomerId = a.CustomerId, EmployerId = a.EmployerId}).ToArray(); 

И на основе ваших EDIT вы хотите сгладить массив, поэтому вам нужно изменить Select на SelectMany, а также new к new[], как это:

var array = dataList.SelectMany(a => new int[] { a.CustomerId, a.EmployerId}).ToArray(); 
+0

См. Мой обновленный вопрос –

+0

@AshokKumawat Итак, вы хотите сгладить массив, вам нужно изменить 'Select' на' SelectMany', а также 'new' на' new [] '. –

0

пытаются использовать динамический

var array= dataList.Select(a => new { a.CustomerId, a.EmployerId }).ToArray(); 
+3

Это не динамический, это анонимный класс. – Sefe

+0

@Sefe thaanks для исправления :) –

+0

См. Мой обновленный вопрос –

Смежные вопросы