2016-04-28 13 views
0

だから、ループする範囲があり、その値をリストに追加します。ヘッダーなので、最初の値をスキップします。どのように私はそれについて行うことができますか?ラミンで述べたように列の範囲の最初の値をスキップしてリストに追加します

for (int a = 1; a < columnRange.Count; a++) 
    { 
     for (int b = 0; b < columnRange[a].Value.Count; b++) 
     { 
      cellValues.Add(columnRange[a].Value[b].ToString()); 

     } 
    } 

または

 var cellValues = new List<string>(); 
     //var rowsCount = worksheet.UsedRange.Rows.Count; 
     var columnRange = worksheet.UsedRange.Columns[1]; 
     bool first = true; 
     foreach (var item in columnRange) 
     { 
      if (first) 
      { 
       first = false; 
      } 
      else 
      { 
       foreach (var cellValue in item.Value) 
       {  
        cellValues.Add(cellValue.ToString());  
       } 
      } 
     } 

     return cellValues; 

またはSkip():それは立っているように私はあなたがforループの代わりforeachを使用することができ、すべての値

{ 
     var cellValues = new List<string>(); 
     //var rowsCount = worksheet.UsedRange.Rows.Count; 
     var columnRange = worksheet.UsedRange.Columns[1]; 

     foreach (var item in columnRange) 
     { 
      foreach (var cellValue in item.Value) 
      { 

       cellValues.Add(cellValue.ToString()); 

      } 
     } 

     return cellValues; 
    } 

答えて

2

を追加しています。

+0

私は "for"を使用することをお勧めします。少ないコードで読みやすい。 –

+1

@ EthanF。編集の回答を参照 –

+0

@Roma最初と2番目は正常に実行されますが、リストには値が与えられません。 。 – MadM

1

LINQのSkip関数を使用できます。

var cellValues = new List<string>(); 
    //var rowsCount = worksheet.UsedRange.Rows.Count; 
    var columnRange = worksheet.UsedRange.Columns[1]; 

    foreach (var item in columnRange) 
    { 
     foreach (var cellValue in ((object[,])item.Value).Cast<object>().Skip(1)) 
     { 

      cellValues.Add(cellValue.ToString()); 

     } 
    } 

    return cellValues; 

しかしitem.Valueは動的な型であるため、我々は、拡張メソッドを使用するためには、それをキャストする必要があり、それは我々がCast<object>()を使用する必要がジャグ配列だからです。

+0

ねえ、これを試したときにエラーが発生しました。タイプ 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException'の例外がSystem.Core.dllで発生しましたが、ユーザーコードで処理されませんでした。 – MadM

+0

ああ、それは動的なタイプなので、最初にキャストする必要があります。私は答えを更新することができます。 – ramin

関連する問題