当前位置: 首页 > article >正文

windows C#-查询表达式中使用隐式类型的局部变量和数组

每当需要编译器确定本地变量类型时,均可使用隐式类型本地变量。 必须使用隐式类型本地变量来存储匿名类型,匿名类型通常用于查询表达式中。 以下示例说明了在查询中可以使用和必须使用隐式类型本地变量的情况。

隐式类型本地变量使用 var 上下文关键字进行声明。 

示例

以下示例演示必须使用 var 关键字的常见情景:用于生成一系列匿名类型的查询表达式。 在此情景中,必须使用 var 隐式类型化 foreach 语句中的查询变量和迭代变量,因为你无权访问匿名类型的类型名称。 

private static void QueryNames(char firstLetter)
{
    // Create the query. Use of var is required because
    // the query produces a sequence of anonymous types:
    // System.Collections.Generic.IEnumerable<????>.
    var studentQuery =
        from student in students
        where student.FirstName[0] == firstLetter
        select new { student.FirstName, student.LastName };

    // Execute the query and display the results.
    foreach (var anonType in studentQuery)
    {
        Console.WriteLine("First = {0}, Last = {1}", anonType.FirstName, anonType.LastName);
    }
}

虽然以下示例在类似的情景中使用 var 关键字,但使用 var 是可选项。 因为 student.LastName 是字符串,所以执行查询将返回一系列字符串。 因此,queryId 的类型可声明为 System.Collections.Generic.IEnumerable<string>,而不是 var。 为方便起见,请使用关键字 var。 在示例中,虽然 foreach 语句中的迭代变量被显式类型化为字符串,但可改为使用 var 对其进行声明。 因为迭代变量的类型不是匿名类型,因此使用 var 是可选项,而不是必需项。 请记住,var 本身不是类型,而是发送给编译器用于推断和分配类型的指令。

// Variable queryId could be declared by using
// System.Collections.Generic.IEnumerable<string>
// instead of var.
var queryId =
    from student in students
    where student.Id > 111
    select student.LastName;

// Variable str could be declared by using var instead of string.
foreach (string str in queryId)
{
    Console.WriteLine("Last name: {0}", str);
}

http://www.kler.cn/a/444560.html

相关文章:

  • springboot中Controller内文件上传到本地以及阿里云
  • 使用Python从阿里云物联网平台获取STM32温度数据
  • 案例分享|企查查的数据降本增效之路
  • [计算机网络]ARP协议的故事:小明找小红的奇妙旅程
  • 【Unity3D】无限循环列表(扩展版)
  • 《C 语言携手 PaddlePaddle C++ API:开启深度学习开发新征程》
  • Leetcode O(1) 时间插入、删除和获取随机元素
  • 深入理解 Kali Linux:基础命令与操作技巧
  • 【数据库】大二数据库复习范围 (快速版)帮助你快速复习数据库
  • openeuler24.09 系统无需配置 docker 源即可安装 docker 和 docker-composer
  • springboot437校园悬赏任务平台(论文+源码)_kaic
  • Linux函数栈帧
  • 掌握特征提取:机器学习中的 PCA、t-SNE 和 LDA模型
  • [unity3D] 利用 Button 组件实现鼠标悬停显示文字
  • git 不使用第三方软件解决冲突
  • 小米su7 or 保时捷怎么选?使用 Three 实现 3D 汽车展示平台比比看
  • C语言基础十一:指针变量与数组;数组指针及指针数组
  • 【k8s集群应用】K8S二进制安装大致步骤(简略版)
  • windows免登录linux
  • 前端学习-VUE
  • 探秘 Web3:重塑互联网的新力量
  • 【unity小技巧】unity最全的性能优化方案分享以及如何进行性能测试(2024/11/11更新)
  • 【蓝桥杯每日一题】选数异或——线段树
  • 【linux】shell(38)-数组
  • Micro Sip 配置自己的freeswitch服务器地址
  • SpringBoot如何实现缓存预热?