2015-10-15 4 views
0

Это мой LINQ:Linq записи в массив строк

var context = new CYGNETEntities(); 
var users = (from u in context.mUsers 
      where u.userName == EmailID && u.password == Password 
      select new 
      { 
       u.userName, 
       u.firstName, 
       u.lastName 
      }) 
    .AsEnumerable() 
    .Select(x => string.Format("{0}, {1}, {2}", x.userName, x.firstName, x.lastName)) 
    .ToArray(); 

Здесь, фактические значения ниже:

u.userName = "admin" 
    u.firstName = "fname" 
    u.lastName = "lname" 

Итак, LINQ возвращается, как показано ниже:

users[0] = admin, fname, lname 

Но я хочу, чтобы записи linq в массиве строк были такими, как показано ниже:

users[0] = admin 
    users[1] = fname 
    users[2] = lname 

Любые предложения, пожалуйста?

+0

Вы можете разделить массив пользователей через запятую, и вы получите результат. – NewbieProgrammer

+0

это должно быть 2-мерный массив в случае, если у вас есть 2 результата с теми же «EmailID» и «Password» – fubo

ответ

2

Я не проверял это, но как насчет:

var users = (from u in context.mUsers 
       where u.userName == EmailID && u.password == Password 
       from s in new string [] { u.username, u.FirstName, u.LastName } 
       select s).ToArray(); 
+0

. Он использует 'SelectMany', поэтому ему нужен' .ToArray() '. – Enigmativity

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