0

ノードのリストを含む Model オブジェクトがあります。これらのノードには署名が含まれています。

署名の配列を返すゲッターを持つプロパティが必要です。配列をインスタンス化するのに問題があり、配列/リスト/列挙可能を使用する必要があるかどうかがわかりません。

どうすればこれを達成できますか?

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

namespace ConsoleApplication1
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            var m = new Model();

            Console.WriteLine(m.Signatures.ToString());
            Console.ReadLine();
        }
    }

    public class Model
    {
        public List<Node> Nodes { get; set; }

        public int[][] Signatures
        {
            get
            {
                return Nodes.Select(x => x.Signature) as int[][];
            }
        }

        public Model()
        {
            Nodes = new List<Node>();
            Nodes.Add(new Node { Signature = new[] { 1,1,0,0,0 } });
            Nodes.Add(new Node { Signature = new[] { 1,1,0,0,1 } });
        }
    }

    public class Node
    {
        public int[] Signature { get; set; }
    }
}
4

2 に答える 2

2

使用するToArray()

return Nodes.Select(x => x.Signature).ToArray();

そして、それを正しく出力するには、次のようにします。

Array.ForEach(m.Signatures, x=>Console.WriteLine(string.Join(",", x)));
于 2013-11-02T22:23:44.950 に答える
1

Signaturesプロパティで、as演算子を使用して型を に変換しようとしていますint[][]。ただし、SelectメソッドはIEnumerable<int[]>配列ではない を返します。ToArray配列を作成するために使用します。

public int[][] Signatures
{
    get
    {
        return Nodes.Select(x => x.Signature).ToArray();
    }
}
于 2013-11-02T22:19:55.600 に答える