c#问题,用数组+for怎么弄啊,求大佬!谢谢

随机产生25个一位正整数存入5*5矩阵,求其靠边元素之和、内部元素之和、左上三角元素之和、右下三角元素之和。

问题得到解决的话,请点下采纳

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

namespace Q1063633
{
    class Program
    {
        static void Main(string[] args)
        {
            Random rnd = new Random();
            var mat = Enumerable.Range(0, 5).Select(_ => Enumerable.Range(0, 5).Select(__ => rnd.Next() % 10).ToArray()).ToArray();
            for (int i = 0; i < 5; i++)
            { 
                Console.WriteLine(string.Join("\t", mat[i].Select(x => x.ToString())));
            }
            Func<int, bool> pred = x => x < 5 || x >= 20 || x % 5 == 0 || x % 5 == 4;
            var idx = mat.SelectMany(_ => _, (_, y) => y).Select((x, i) => new { x, i});
            var 靠边元素之和 = idx.Where(x => pred(x.i))
                .Select(x => x.x).Sum();
            Console.WriteLine("靠边元素之和={0}", 靠边元素之和);
            var 内部元素之和 = idx.Where(x => !pred(x.i))
                .Select(x => x.x).Sum();
            Console.WriteLine("内部元素之和={0}", 内部元素之和);
            var 左上三角元素之和 = idx.Where(x => x.i / 5 <= 4 - x.i % 5)
                .Select(x => x.x).Sum();
            Console.WriteLine("左上三角元素之和={0}", 左上三角元素之和);
            var 右下三角元素之和 = idx.Where(x => x.i / 5 >= 4 - x.i % 5)
                .Select(x => x.x).Sum();
            Console.WriteLine("右下三角元素之和={0}", 右下三角元素之和);
        }
    }
}

9 8 2 8 3
9 1 9 6 9
9 6 3 5 0
3 0 6 9 4
1 9 8 1 5
靠边元素之和=88
内部元素之和=45
左上三角元素之和=77
右下三角元素之和=69
Press any key to continue . . .