相关疑难解决方法(0)

C#中使用的yield关键字是什么?

在" 我如何仅公开IList的片段<>问题"中,其中一个答案包含以下代码段:

IEnumerable<object> FilteredList()
{
    foreach(object item in FullList)
    {
        if(IsItemInPartialList(item))
            yield return item;
    }
}
Run Code Online (Sandbox Code Playgroud)

yield关键字有什么作用?我已经看到它在几个地方被引用,另外一个问题,但我还没弄清楚它实际上做了什么.我习惯于在一个线程产生另一个线程的意义上考虑收益率,但这似乎并不重要.

c# yield

781
推荐指数
16
解决办法
30万
查看次数

如何遍历日期范围?

如果不使用一些可怕的循环/计数器类型解决方案,我甚至不确定如何做到这一点.这是问题所在:

我有两个日期,开始日期和结束日期,在指定的时间间隔内我需要采取一些行动.例如:对于2009年10月3日之间的每个日期,每隔三天至2009年3月26日,我需要在列表中创建一个条目.所以我的意见是:

DateTime StartDate = "3/10/2009";
DateTime EndDate = "3/26/2009";
int DayInterval = 3;
Run Code Online (Sandbox Code Playgroud)

我的输出将是一个具有以下日期的列表:

2009年3月13日3/16/2009 3/19/2009 3/22/2009 3/25/2009

那么我怎么会这样做呢?我想过使用一个for循环,它会在范围内的每一天之间迭代,使用一个单独的计数器,如下所示:

int count = 0;

for(int i = 0; i < n; i++)
{
     count++;
     if(count >= DayInterval)
     {
          //take action
          count = 0;
     }

}
Run Code Online (Sandbox Code Playgroud)

但似乎可能有更好的方法?

c# asp.net datetime loops

181
推荐指数
7
解决办法
13万
查看次数

每小时生成时间范围

我想从时间范围创建一个每小时对象列表。

c# 中有没有像 python pandas.timerange 这样的函数?

pandas.time_range("11:00", "21:30", freq="30min")
Run Code Online (Sandbox Code Playgroud)

c#

2
推荐指数
1
解决办法
1521
查看次数

在C#中生成日期

是否有任何帮助方法在C#中生成日期?

例如,我有一个网格显示日期,给定两个日期之间所有日期的日期..如果我选择2013年1月1日至2013年2月5日...它应该生成这两个之间的所有日期...

我尝试了While Loop如下

 while (startdate <= enddate)
 {         
      var calendarDate = CreateDate();
      calendarDate.CalendarDate = startdate.Date;
      if (calendarDate.DayofWeek == DayOfWeekValues.Sunday.Value)
      {
           calendarDate.IsHoliday = true;
      }       
      startdate = startdate.AddDays(1.0);
 }
Run Code Online (Sandbox Code Playgroud)

c# date

1
推荐指数
1
解决办法
254
查看次数

使用 LINQ 将缺失的日期添加到 LIST 中最大和最小日期之间的列表

我正在尝试用没有销售的缺失日期填充我的列表......

我定义了一个这样的类:

   public class GroupedItem
    {
        public DateTime _Date { get; set; }
        public int Sales { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

现在列表填充如下:

var LineGraph = _groupedItems
                      .GroupBy(l => l._Date.Date)
                      .Select(cl => new GroupedItem
                      {
                           _Date = cl.Key,
                           Sales = cl.Sum(c=>c.Sales)
                      })
                      .OrderBy(x => x._Date)
                      .Where(t => t._Date <= DateTime.Now &&
                      t._Date >= DateTime.Now.Subtract(TimeSpan.FromDays(date_range)))
                      .ToList();
Run Code Online (Sandbox Code Playgroud)

我得到的输出如下:

11th December 6 sales
13th December 8 sales
18th December 12 sales
19th December 25 sales
Run Code Online (Sandbox Code Playgroud)

这相当不错,但我想添加第一个日期和最后一个日期之间缺少的日期,以便我可以得到如下输出:

11th December 6 sales
12th December 0 sales …
Run Code Online (Sandbox Code Playgroud)

c# linq asp.net datetime range

1
推荐指数
1
解决办法
1506
查看次数

LINQ表达式生成两个日期之间的天数列表

我有一个开始和结束日期,我想获得这两个日期(包括两者)之间所有日期的列表.我可以使用一个循环向开始日期添加1天,然后将该日期添加到列表中.就像是:

DateTime end = DateTime.Now;
DateTime start = end.AddDays(-30);
DateTime current = start;
List<DateTime> result = new List<DateTime>();
while (currrent <= end)
{
    result.Add(current);
    current = current.AddDays(1);
}
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个整洁的LINQ表达式.有任何想法吗?

c# linq

0
推荐指数
2
解决办法
778
查看次数

标签 统计

c# ×6

asp.net ×2

datetime ×2

linq ×2

date ×1

loops ×1

range ×1

yield ×1