2016-05-18 3 views
1

C#WindowsフォームアプリケーションでListBoxコントロールを使用していますが、リストボックスの行にディバイダ/行を追加したいとします。私は、これは私がデータベースにこのデータを保存するためにこれを分離するために必要な着信内容のデータListBoxの個別のテキストをC#

が含まれている私のリストボックスで、この

enter image description here

についての情報を見つけることができませんでした。

私を助けてください。解決するためのリンクを参照してください。

+3

「フィールド」を区切るために使用しているものによって異なりますが、['String.Split'](https://msdn.microsoft.com/en-us)を使用する必要があります。 /library/tabh47cf(v=vs.110).aspx) – Pikoh

+0

それは複数列リストボックスですか? –

+0

通常のリストボックスです。 2011年から2012年に電話をかけると、コールの詳細が自分の質問画像のようなリストボックスに表示されます。 – Divi

答えて

0

このようなものです。 は(匿名オブジェクトの)フィールドに、各チャンクを、チャンクに(集計またはスペースで)行を分割し、その後変換

var data = listBox1.Items 
    .OfType<String>() 
    .Select(line => line.Split(new Char[] {'\t', ' '}, 
          StringSplitOptions.RemoveEmptyEntries)) 
    .Select(items => new { 
    CallType = items[0], 
    Source = items[1], 
    Designation = items[2], 
    At = DateTime.ParseExact(items[3], "d/M/yyyy", CultureInfo.InvariantCulture) + 
      TimeSpan.Parse(items[4]), 
    Duration = TimeSpan.Parse(items[5]) 
    }); 

、ループ:

DOYはあなたを得る
foreach (var item in data) { 
    if (item.CallType == "INCOMING") ... 

    // date: item.At.Date; time: item.At.TimeOfDay 
} 
+0

うわースーパーサーは私にそれをたくさんありがとう – Divi

+0

@Divi:あなたは大歓迎です! –

1

データは?その文字列を直接あなたに伝えますか?

もしそうなら、文字列を複数(正確には6)に分割する必要があります。

var splitet = $TheListBoxItemYouWantToGetInfo.ToString().Split(' '); 
List<String> list = new List<string>(); 
foreach (string str in splitet) 
{ 
    if (str != "") list.Add(str); 
} 
//Here you have all the data in "list" in separated strings, just cast/parse it if you need another type for the DB 
関連する問題