Linq学习__02__数据源是数组,Count()、Max()、Average() 和 First() ,ToList() 或 ToArray()

想运行本程序,请先做好准备工作,请参考:Linq学习__00__准备工作

(1)新建HomeController。

更新HomeController的Index方法如代码1.1


代码1.1

#region 数据源是数组
        /// <summary>
        /// 数据源是数组
        /// from,where,select,Count(),Max(),Average(),First(),ToList(),ToArray(),  
        /// </summary>
        /// <returns></returns>
        public ActionResult Index()
        {
            int[] numbers = new int[7] { 0, 1, 2, 3, 4, 5, 6 };//数组隐式支持泛型 IEnumerable(T) 接口,所有可以当作可查询数据源
            //查询所有偶数
            var numQuery = from num in numbers
                           where (num % 2) == 0
                           select num;
            //查询变量numQuery本身只是存储查询命令语句而已。实际的查询执行会延迟到查询变量被循环访问时发生。此概念称为“延迟执行”,
            //Count()、Max()、Average() 和 First() 就属于此类查询,但他们不用显示的foreach 语句,这些类型的查询返回单个值,而不是 IEnumerable 集合。
            ViewBag.num = numQuery;//使用ViewBag向页面传值

            //用Count()函数查询所有奇数数的个数
            var numQuery1 = (from num in numbers
                             where (num % 2) == 1
                             select num).Count();
            ViewBag.count = numQuery1;

            //用Max()函数查询小于4的数中最大的那个数
            var numQuery2 = (from num in numbers
                             where num < 4
                             select num).Max();
            ViewBag.Max = numQuery2;

            //用Average()函数所有数平均值
            var numQuery3 = (from num in numbers
                             select num).Average();
            ViewBag.Average = numQuery3;

            //用First()函数查询大于等于5的数中的第一个数
            var numQuery4 = (from num in numbers
                             where num >= 5
                             select num).First();

            ViewBag.First = numQuery4;

            //若要强制立即执行任意查询并缓存其结果,可以调用 ToList(TSource) 或 ToArray(TSource) 方法。
            //用ToList强制立即执行查询并缓存其结果(查询不等于2数)
            var numQuery5 = (from num in numbers
                             where num != 2
                             select num).ToList();
            ViewBag.ToList = numQuery5;

            //用ToArray强制立即执行查询并缓存其结果(查询不等于6数)
            var numQuery6 = (from num in numbers
                             where num != 6
                             select num).ToArray();
            ViewBag.ToArray = numQuery6;

            return View();//返回View视图
        }

        #endregion 数据源是数组

(2)添加视图Index.cshtml,代码如代码1.2


代码1.2

<div style="background-color: Yellow;">
    数据源是: 0, 1, 2, 3, 4, 5, 6</div>
@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
@*这是注释*@ @*循环写法一*@
<div style="background-color: Yellow;">
    (1)查询所有偶数方法一</div>
@{
    foreach (var i in ViewBag.num)
    {
    <div>@i</div>   
    }
}
@*循环写法一*@
<div style="background-color: Yellow;">
    (1)查询所有偶数方法二</div>
@*循环写法二*@
@foreach (var i in ViewBag.num)
{
    <div>@i</div>
}
@*循环写法二*@
@{
    <div style="background-color: Yellow;">
        (2)用Count()函数查询所有奇数数的个数 @ViewBag.count</div>
    <div style="background-color: Yellow;">
        (3)用Max()函数查询小于4的数中最大的那个数 @ViewBag.Max</div>
    <div style="background-color: Yellow;">
        (4)用Average()函数所有数平均值 @ViewBag.Average</div>
    <div style="background-color: Yellow;">
        (5)用First()函数查询大于等于5的数中的第一个数 @ViewBag.First</div>
    <div style="background-color: Yellow;">
        (6)用ToList强制立即执行查询并缓存其结果(查询不等于2数)</div>
    foreach (var j in ViewBag.ToList)
    {
    <div>@j</div>   
    }
    <div style="background-color: Yellow;">
        (7)用ToArray强制立即执行查询并缓存其结果(查询不等于6数)</div>
    foreach (var m in ViewBag.ToArray)
    {
    <div>@m</div>   
    }
    
}


 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值