zoukankan      html  css  js  c++  java
  • c# in deep 之对Linq表达式范围变量限制问题的一些解决办法

      linq表达式的标准形式为from...where...select,其中from后面跟的就是范围变量。linq中范围变量需要是泛型的集合,假如我们想对ArrayList或Object[]进行处理,linq就无能为力了。解决这种弱类型集合问题可以用两种方法:Cast和OfType。下面用一个实例进行演示。

        ArrayList list = new ArrayList { "First", "Second", "third" };
                IEnumerable<string> strings=list.Cast<string>();
                foreach (string item in strings)
                {
                    Console.WriteLine(item);
                }

                list = new ArrayList { 1, "not a int", 2, 3 };
                IEnumerable<int> ints = list.OfType<int>();
                foreach (int item in ints)
                {
                    Console.WriteLine(item);
                }

      下面我们调用显式类型的范围变量来自动调用Cast

        ArrayList list = new ArrayList { "First", "Second", "third" };
                var strings = from string entry in list select entry.Substring(0, 3);

        foreach (string item in strings)
                {
                    Console.WriteLine(item);
                }

      这样我们就可以快速的将集合转换成泛型进行处理了。

  • 相关阅读:
    ios -为什么用WKWebView加载相同的html文本,有时展示的内容却不一样。
    weex
    [Objective-C 面试简要笔记]
    [iOS 基于CoreBluetooth的蓝牙4.0通讯]
    [SVN Mac自带SVN结合新浪SAE进行代码管理]
    [SVN Mac的SVN使用]
    [iOS dispatch_once创建单例]
    [iOS UI设计笔记整理汇总]
    [iOS 视频流开发-获得视频帧处理]
    [iOS OpenCV错误解决]
  • 原文地址:https://www.cnblogs.com/xuekai-to-sharp/p/3362936.html
Copyright © 2011-2022 走看看