Я как бы застрял снова, поскольку я не могу это понять.заказ linq, занимающий очень долгое время
Так у меня есть класс с именем CSVItem
:
public class CSVItem
{
public int SortedAccountNumber { get; set; }
public DateTime Date { get; set; }
public int SNO { get; set; }
public string AccountNumber { get; set; }
public double Value { get; set; }
public int Year
{
get
{
if (Date.Month > MainWindow.fiscalMonth)
{
return Date.Year+1;
}
return Date.Year;
}
}
public int StaticCounter { get { return 1; } }
public CSVItem(string accNo, DateTime date, double value, int sNo)
{
Value = value;
Date = date;
AccountNumber = accNo;
SNO = sNo;
}
}
Я прочитал CSV, и я делаю список типа CSV Пункт с примерно 500k элементов. Затем я пытаюсь сортировать, используя метод Order By по умолчанию, и пытаюсь вернуть список из сортированной коллекции. Вот код:
List<CSVItem> items = new List<CSVItem>();
// ---- some code to read csv and load into items collection
List<CSVItem> vItems = items.OrderBy(r1 => r1.AccountNumber).ThenBy(r1 => r1.Date).ToList();
Это похоже на ведение сортировки, а затем преобразование коллекции в список. Ну, я, конечно, пробовал загружать около миллиона записей ранее и никогда не получал такого ответа - от Linq Sorting, и это отчасти сводит меня с ума. Любая помощь или предложение о том, где я могу найти решение проблемы?
Я не знаю, насколько это поможет, но вы можете захотеть кэшировать результат Года, а не выполнять вычисления каждый раз. – skaz
@skaz Но кажется, что он не использовал Год для сортировки .... – HarryQuake
Что такое 'items'? – sloth