首页 > 代码库 > linq常用

linq常用

  • ToList()什么时候用?

1.当需要对返回的结果进行操作时(比如foreach()操作),可以将这个结果先ToList(),这样可以提高程序运行速度。

2.当不需要对结果进行操作时,直接返回IEnumerable对象即可。

  • ?:运算符需要返回的结果是Nullable类型的值时怎么办?

decimal? result = a==0?null:b 这里b 必须是decimal?类型,否则在?null处会报错。

  • linq中的函数用法

linq中可以直接使用Count()等函数,不用考虑前面的对象是否为null

  • 计算两个时间之间有几周

        public static double NumberOfWeeks(DateTime dateStart, DateTime dateEnd)
        {
            double WeekCount = 0;
            TimeSpan Span = dateEnd.Subtract(dateStart);

            if (Span.Days <= 7)
                return 1;
            else
                WeekCount = (double)Span.Days / 7;

            return WeekCount;
        }

  • 计算给定时间是一年中的第几周

        public static int WeekOfYear(DateTime date)
        {
            GregorianCalendar cal = new GregorianCalendar(GregorianCalendarTypes.Localized);//using System.Globalization
            return cal.GetWeekOfYear(date, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);
        }

  • 计算给定时间所在对应的周一是日期

        public static DateTime BeginningOfWeek(DateTime date)
        {
            DayOfWeek day = date.DayOfWeek;//using System
            int days = day - DayOfWeek.Monday;

            if (days < 0)
                days = 6;

            return date.AddDays(-days);
        }