Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用LINQ从列中获取单个天数的最佳方法_Linq_C# 4.0 - Fatal编程技术网

使用LINQ从列中获取单个天数的最佳方法

使用LINQ从列中获取单个天数的最佳方法,linq,c#-4.0,Linq,C# 4.0,我在一个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,我想从列中获得

我在一个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
所以我可以把它放进一个列表里


最好的方法是什么?我已经有了上下文内容设置,所以我不需要关于它的详细信息。我只需要一个想法,最好的“查询”和逻辑,我可以用来获得这些数据。谢谢

如果您正在查找日期时间范围内的所有不同日期,下面将显示示例,以获取您所需的内容,前提是您已经在字符串中或通过查询数据库获得这些内容:

var q = from t in mydates select distinct ( t.Date.ToShortDateString());
示例(带字符串列表)

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();
示例(来自数据库表)

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 dates=(从datesTable中的d开始)
选择d.date.ToSortDateString()).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();
List List=新列表();
添加(DateTime.Parse(“2011-06-20 11:53:32.000”);
添加(DateTime.Parse(“2011-05-20 11:53:32.000”);
添加(DateTime.Parse(“2011-05-20 11:44:32.000”);
添加(DateTime.Parse(“2011-04-20 11:53:32.000”);
var result=list.Select(x=>x.Date.ToShortDateString()).Distinct();
foreach(结果中的字符串日期)
{
控制台写入线(日期);
}
Console.Read();

如果您正在查找日期时间范围内的所有不同日期,下面将显示示例,以获取您所需的内容,前提是您已经在字符串中或通过查询数据库获得这些内容:

示例(带字符串列表)

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();
示例(来自数据库表)

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 dates=(从datesTable中的d开始)
选择d.date.ToSortDateString()).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();
List List=新列表();
添加(DateTime.Parse(“2011-06-20 11:53:32.000”);
添加(DateTime.Parse(“2011-05-20 11:53:32.000”);
添加(DateTime.Parse(“2011-05-20 11:44:32.000”);
添加(DateTime.Parse(“2011-04-20 11:53:32.000”);
var result=list.Select(x=>x.Date.ToShortDateString()).Distinct();
foreach(结果中的字符串日期)
{
控制台写入线(日期);
}
Console.Read();

要在列表中选择不同的日期,请尝试以下操作:

List<String> myDates = (from t in myTable
                        select t.myDate.ToShortDateString()
                       ).Distinct().ToList()
List myDates=(从myTable中的t开始)
选择t.myDate.ToShortDateString()
).Distinct().ToList()

要在列表中选择不同的日期,请尝试以下操作:

List<String> myDates = (from t in myTable
                        select t.myDate.ToShortDateString()
                       ).Distinct().ToList()
List myDates=(从myTable中的t开始)
选择t.myDate.ToShortDateString()
).Distinct().ToList()

那么您想获得不同的日期吗?如果这是linq to objects,我可能会建议
items.Select(item=>item.DateProperty.Date).distinct()
。如果你想把这个移到DB端,我不确定你会用什么,因为我认为
.Date
不会翻译。不过,可能有一个Linq to EF(-Sql)帮助函数可供使用。@Abe Miessler,不会有完美的按时间顺序排列的日期,而是随机日期,我只希望每个日期都有一次。那么您想得到不同的日期吗?如果这是Linq to对象,我可能会建议
items.Select(item=>item.DateProperty.date).distinct()
。如果你想把这个移到DB端,我不确定你会用什么,因为我认为
.Date
不会翻译。不过,可能有一个Linq to EF(-Sql)帮助函数可供使用。@Abe Miessler,不会有完美的按时间顺序排列的日期,而是随机的日期,我希望每个日期只出现一次。我认为答案不可能比这更完美。谢谢你的详尽回答!我认为答案再完美不过了。谢谢你的详尽回答!