

C#のLinqについて質問です。msのサイトのコードを参考に、二つのcsvファイルをinner joinで繋げて出力させるコードを書きました。  
コード中ではフィールド0からフィールド4までの出力になっていますが、これを全フィールド出力させるにはどうしたらよいですか？（フィールドは全部で200以上あり、個別での記載は難しいです）  
以下、コードです。よろしくお願いします。

[code]

    using System;
    using System.Linq;
    using System.Collections.Generic;
    
    class JoinStrings {
        static void Main() {
            string[] names = System.IO.File.ReadAllLines(@"C:\test\aa\names.csv", System.Text.Encoding.GetEncoding("Shift_JIS"));
            string[] scores = System.IO.File.ReadAllLines(@"C:\test\aa\scores.csv", System.Text.Encoding.GetEncoding("Shift_JIS"));
    
            IEnumerable<string> scoreQuery1 =
                from name in names
                let nameFields = name.Split(',')
                from id in scores
                let scoreFields = id.Split(',')
                where nameFields[0] == scoreFields[3]
                select nameFields[0] + "," + scoreFields[1] + "," + scoreFields[2]
                        + "," + scoreFields[3] + "," + scoreFields[4];
    
            OutputQueryResults(scoreQuery1, "Merge two spreadsheets:");
    
            // Keep console window open in debug mode.
            Console.WriteLine("Press any key to exit");
            Console.ReadKey();
        }
    
        static void OutputQueryResults(IEnumerable<string> query, string message) {
            Console.WriteLine(System.Environment.NewLine + message);
            foreach (string item in query) {
                Console.WriteLine(item);
            }
            Console.WriteLine("{0} total names in list", query.Count());
        }
    }
    
[/code]


CC BY-SA 3.0
2015-05-20T04:00:15.453
10403
2015-05-20T04:31:17.570
2015-05-20T04:14:18.190
4236
9806
question
c# csv linq
C#のLinq csv結合について


まず[String.Join()](https://msdn.microsoft.com/ja-
jp/library/System.String.Join\(v=vs.110\).aspx)を使うことでさまざまな結合ができます。とはいえ単一の配列かIEnumerableが必要になるため、Enumerable.Concat()で結合するとよいでしょう。

[code]

    var names = from name in File.ReadLines(@"C:\test\aa\names.csv", Encoding.Default)
                select name.Split(',');
    var scores = from score in File.ReadAllLines(@"C:\test\aa\scores.csv", Encoding.Default)
                 select score.Split(',');
    
    var scoreQuery1 = from name in names
                      join score in scores on name[0] equals score[3]
                      select String.Join(",", new[] { name[0] }.Concat(score));
    
[/code]

[EnumerableEx.StartWith()](https://github.com/Applied-
Duality/Rx/blob/master/Ix/NET/Source/System.Interactive/EnumerableEx.Single.cs#L483)を使うともう少しきれいにかけます。


CC BY-SA 3.0
2015-05-20T04:31:17.570
10406
2015-05-20T04:31:17.570
4236
10403
answer