jayeshkumar.rathod Ответов: 2

LINQ для выбора списка строк не придет по выбрать последовательность столбцов


ниже приведен мой код для выбора строкового списка столбцов для loanmasters :-

var loan = context.loanmasters.Where(m => m.MemberUniqueId == emberUniqueId).Select(
m => new List<String> {

               m.LoanAccountNo.ToString(),
               m.StartDate.ToString(),
               m.Tenure.ToString(),
               m.OutstandingPrinciple.ToString(),
               m.InterestRate.ToString(),
               m.LoanAmount.ToString(),
               m.EMI.ToString()
               });

но я получаю значения столбцов в неожиданной последовательности, которая приведена ниже: =

var dsLoans = [["84","62423","9","2010054802","250000","19/11/2011","3000"]];



это должно быть как показано ниже :-
var dsLoans = [["2010054802","19/11/2011","84","62423","9","250000","3000"]];


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

сравнил с моим другим рабочим кодом, но ничего не нашел.

Richard Deeming

Один List<T> не будет переупорядочивать элементы, которые вы добавляете к нему. Должно быть, происходит что-то еще.

Отлаживать свой код и проверить loan переменная сразу после оператора, который вы показали. Затем пройдите через свой код, чтобы узнать, где происходит переупорядочение списка.

jayeshkumar.rathod

пожалуйста, скопируйте и вставьте в новую вкладку.. для отладочного изображения.

https://s27.postimg.org/z0n2y22ar/Sequence_Not_Coming_accourding_select.png

Richard Deeming

Это очень странно. И вы убедились, что колонки на m объект содержит значения, которые вы ожидаете?

Обычно я ожидаю увидеть дополнительный уровень в подсказке инструмента, так как переменная является IEnumerable<List<String>> - это что, закрепленный наконечник данных?

jayeshkumar.rathod

да.. Ричард

Matthew Dennis

Зачем использовать список & lt;String>? Как насчет того, чтобы просто создать анонимный объект с нужными вам свойствами или даже использовать класс с нужными вам свойствами?

2 Ответов

Рейтинг:
12

jayeshkumar.rathod

Спасибо всем за ваше драгоценное время.

я получил решение, используя приведенный ниже код :-

var loan = context.loanmasters.Where(m => m.MemberUniqueId == MemberUniqueId).Select(m => new
                       {
                           LoanAccountNo = m.LoanAccountNo.ToString(),
                           StartDate = m.StartDate.ToString(),
                           Tenure = m.Tenure.ToString(),
                           OutstandingPrinciple = m.OutstandingPrinciple.ToString(),
                           InterestRate = m.InterestRate.ToString(),
                           LoanAmount = m.LoanAmount.ToString(),
                           EMI = m.EMI.ToString()
                       });

               var listOfLoanStringLists = new L.List<String[]>();
               foreach (var loanRec in loan)
               {
                   listOfLoanStringLists.Add(new String[] { loanRec.LoanAccountNo, loanRec.StartDate, loanRec.Tenure, loanRec.OutstandingPrinciple, loanRec.InterestRate, loanRec.LoanAmount, loanRec.EMI });
               }

               ViewBag.LoanMaster = JsonConvert.SerializeObject(listOfLoanStringLists);


Рейтинг:
1

Member 12216380

вы пробовали использовать псевдоним в нем
я думаю, что это может решить вашу проблему

попробуйте, а потом сообщите мне
я снова исследую вашу проблему, если она не работает


jayeshkumar.rathod

не могли бы вы привести пример псевдонима для одной колонки? ..

Member 12216380

var providers = EMRRepository.GetProviders().Select (x => new { Name = x });

попробовать этот метод

это может быть полезно для вас