C# LINQ 无法枚举矩阵

标签 c# asp.net linq

我声明了一个 3 X 3 矩阵

int[,] matrix=new int[3,3]
                {
                   {1,2,3},
                   {4,5,6},
                   {11,34,56}
                };

当我尝试像这样枚举它时

var diagonal = matrix.AsQueryable().Select();

我无法将其转换为可枚举集合。该怎么做?

最佳答案

矩形数组不实现通用 IEnumerable<T>类型,所以你需要调用Cast<> .例如:

using System;
using System.Collections.Generic;
using System.Linq;

class Test
{
    static void Main()
    {
        int[,] matrix=new int[3,3]
                {
                   {1,2,3},
                   {4,5,6},
                   {11,34,56}
                };

        IEnumerable<int> values = matrix.Cast<int>()
                                        .Select(x => x * x);
        foreach (int x in values)
        {
            Console.WriteLine(x);
        }
    }
}

输出:

1
4
9
16
25
36
121
1156
3136

关于C# LINQ 无法枚举矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3607321/

相关文章:

linq - 将 LINQ 应用到对象分组依据和排序依据到泛型 List<T> (C#)

c# - LINQ 到 XML 语法

c# - SortedList 中值的总和和键的条件

c# - 如何为相同类型的 UIElement 编写通用事件处理程序?

c# - 项目列表中每个项目的最大值

c# - 如何为泛型创建一个完全懒惰的单例

.net - SqlProfileProvider

c# - GetAsync 请求返回空内容

c# - Farseer 物理教程,帮助文件

asp.net - 关于设置C#/Asp.Net 3.5应用程序自动构建器服务器的一些疑惑