2016-10-07 6 views
2

私はライン> 1. で細胞を含むデータテーブルを作成しようとしています: (FYI C#に新しい、OOPS ...親切にしてくださいについては何も知らない)これは私のコードです:「String []またはList <String>」をC#のDataTableの1つのセルエントリとして追加するにはどうすればよいですか?

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Data; 
using System.IO; 
namespace Excelapp 
{ 
class Program 
{ 
    static void Main(string[] args) 
    { 
     DataTable table = new DataTable(); 
     table.Columns.Add("LOCarray",typeof(String[])); 
     table.Columns.Add("LOCstring", typeof(String)); 
     table.Columns.Add("LOClist", typeof(List<String>)); 


     String[] LOCarray = new String[2] {"Line1","Line2" }; 
     String LOCstring = "Line1\n\rLine2"; 
     List<String> LOClist = new List<String>(); 
     LOClist.Add("Line1"); 
     LOClist.Add("Line2"); 

     table.Rows.Add(LOCarray, LOCstring, LOClist); 

     } 
    } 
} 

出力は次のとおりです。

DataSet Visualizer enter image description here

あなたが見ることができるように、これは私が欲しいものではありません。私が文字列として書く時でさえ、\ n文字を表示していません。

私を助けてください。

+1

だろう? –

+0

'DataTable'は構造体であり、表示コンポーネントではないので、' \ n'はレンダリングされません。ビジュアライザーでデータを表示すると、エスケープ文字が削除されます。その行を読み込んでテキストコンポーネントまたはコンソールに表示すると、新しい行が表示されます。 – Alex

+0

行の1つのセルに複数の行があるはずです。 – Shrey

答えて

2
string[] arr = { "one", "two", "three" }; 

string arrayValuesWithNewLineSep = string.Join("\n", arr)); 
+0

「\ n」文字が表示されていないことについて何か言及していますが、これは彼が探している答えではないと私は確信しています。 –

+0

@BradleyUffnerありがとう、この部分を読んでいない。 – mybirthname

+0

これは賢明な答えです。オペレーションは、データテーブルとグリッドを混同します。 –

0

Linqが好きな方はAggregate機能を使用することもできます。

例:

IEnumerable<string> collection = new List<string>() { "This", "is", "a", "sentence", "."}; 

var sentence = collection.Aggregate((a, b) => a + " " + b); 

またはあなたの場合

、それはあなたが* *たくないものを示したが、* *あなたはそれが見えるように何をしたいですか

var myValue = locList.Aggregate((a, b) => a + "\n\r" + b); 
関連する問題