Linq-запрос без имен столбцов - PullRequest
0 голосов
/ 07 марта 2019

Я пытаюсь написать запрос LINQ, используя предложение Select OR Where в найденном списке. Однако в списке нет имени столбца, есть только значения. Итак, мой вопрос, как я могу получить значения, основанные на этом условии?

Например, список содержит статус «Утверждено», «По состоянию». Однако я хочу получить записи о статусе «Одобрено» только из списка. Ниже мой код

SpreadsheetsResource.ValuesResource.GetRequest request = service.Spreadsheets.Values.Get(spreadsheetId, range);

ValueRange response = request.Execute();
IList<IList<object>> values = response.Values;

А ниже скриншот, как значения выглядят в списке

enter image description here

Список с именем 'values' содержит все записи.

Буду признателен за любую помощь в этом!

Ответы [ 2 ]

4 голосов
/ 07 марта 2019

Ваши данные возвращаются как коллекция, так что вы можете получить доступ к свойствам через их числовой индекс, например,

var approvedResults = values.Where(c => c[7] == "Approved");

Или вы можете сопоставить его с подходящим объектом, например,

public class MyResultObject {
   public DateTime date {get; set;}
   public string FirstName {get; set;}
   ...
   public string ApprovedStatus {get; set;}

   public MyResultObject(string[] values)
   {
       date = DateTime.Parse(values[0]);
       FirstName = (string) values[1];
       ...
       etc.
   }
}

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

var myResultObjects = values.Select(c => new MyResultObject(c.Select(x => (string)x).ToArray());

Возможно, вам придется немного подправить код, потому что я точно не знаю, как работает ValueRange, и я просто набираю это, не проверяя, но в этом суть.

Тогда вы можете сделать myResultObjects.Where(c => c.ApprovedStatus == "Approved");, что намного лучше.

0 голосов
/ 07 марта 2019

Я добился этого с помощью строки кода ниже

var result = values.Where(x => x.Contains("Approved")).ToList();

Это даст мне только записи со статусом «Одобрено».

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...