2011-02-07 7 views
2

私は配列を返すLinqを使って設定ファイルを読んでいます。linq reasultを2D配列として返しますか?

単一機能でLinqクエリには、戻りポート番号と別のプロジェクト名があります。この関数は、2次元配列(OR任意)で両方を返します。

public string[][] GetProjectsPorts(string cruiseControlPath) 
    { 
      var projectNames = (from item in xdoc.Elements("project") 
           select item.Attribute("name").Value).ToArray(); 


      var portNumber = (from item in xdoc.Elements("system.runtime.remoting"). 
            Elements("application").Elements("channels").Elements("channel") 
           select item.Attribute("port").Value).ToArray(); 

     return ?? 
    } 

問題は、私は、単一の2次元配列に両方の配列を置く方法、である.....

別のオプションは、辞書として、それを返すことですが、それは、複数の同じプロジェクト名を持つことができます。

提案のためのThanx。

+0

、あなたがここに持っていることはアレイ(またはジャグ配列)の配列です。 2D配列は 'string [、]'になります。違いを知ることは重要です – Dyppl

答えて

0

: - ところで

return new string[][] { projectNames, portNumber}; 
+0

はい、あなたは正しいです!私は言及するには、ポート番号のための多くのプロジェクトがあります。だからポートナンバーを持つprojectnameのような私の出力 – PawanS

4

{Project、Port}のペアを別のデータ型でカプセル化し、その型の配列(またはリスト)を返すことをお勧めします。他のものとは別に、ポート番号は文字列ではなく数字にすることができます:)

.NET 4を使用している場合はTuple<string, int>を使用できますが、読みやすさのために独自の型を作成することを検討してください(プロパティ "Project"と "Port"は "Item1"と "Item2"よりかなり明確です)。そのよう

+0

ああ!私は1つのポート番号を持つ複数のプロジェクトを持っているので、アイデアはどのように情報を格納するクラスをreatesするのですか – PawanS

関連する問題