Лучший способ получить отдельные дни из колонки, используя LINQ - PullRequest
1 голос
/ 05 августа 2011

У меня есть следующие данные в одном столбце таблицы MSSQL

2011-06-20 11:53:32.000
2011-06-20 11:54:24.000
2011-06-20 11:55:45.000
2011-08-05 10:24:12.000
2011-08-05 10:25:28.000
2011-08-05 10:26:20.000
2011-08-05 10:27:12.000
2011-08-05 10:28:04.000
2011-08-05 10:28:55.000

Используя LINQ, я хотел бы получить следующие данные из столбца

2011-06-20 
2011-08-05

, поэтому я могу поместить их вСписок <>

Какой лучший способ сделать это?У меня уже есть настройка контекста, поэтому мне не нужны подробности об этом.Мне просто нужна идея лучшего «запроса» и логики, которую я могу использовать, чтобы получить эти данные.Спасибо!

Ответы [ 3 ]

1 голос
/ 05 августа 2011

Вы ищете все даты Distinct в диапазоне DateTimes, ниже приведены примеры, чтобы получить то, что вам нужно, если у вас уже есть их в строке или при запросе к базе данных:

Пример (со списком строк) :

var list; //Contains your dates
var result = list.Select(x => x.Date.ToShortDateString()).Distinct();

Пример (из таблицы базы данных) :

List<String> dates = (FROM d in datesTable
                      SELECT d.date.ToShortDateString()).Distinct().ToList();

Пример консоли для демонстрации функциональности:

List<DateTime> list = new List<DateTime>();
list.Add(DateTime.Parse("2011-06-20 11:53:32.000"));
list.Add(DateTime.Parse("2011-05-20 11:53:32.000"));
list.Add(DateTime.Parse("2011-05-20 11:44:32.000"));
list.Add(DateTime.Parse("2011-04-20 11:53:32.000"));

var result = list.Select(x => x.Date.ToShortDateString()).Distinct();

foreach (string date in result)
{
    Console.WriteLine(date);
}
Console.Read();
0 голосов
/ 05 августа 2011

Чтобы выбрать разные даты в списке, попробуйте это:

List<String> myDates = (from t in myTable
                        select t.myDate.ToShortDateString()
                       ).Distinct().ToList()
0 голосов
/ 05 августа 2011
var q = from t in mydates select distinct ( t.Date.ToShortDateString());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...