0

ファイルからデータを読み取るためのC#コードを作成しましたcsv。データの形式は次のとおりです。

2,3,4,5,6
4,2,4,5,6
4,5,6,3,2
5,3,5,6,3

それを読むためのコードは次のとおりです。

var lines = File.ReadLines("Data.csv");
var numbers = ProcessRawNumbers(lines); 

機能ProcessRawNumbersは次のとおりです。

private static List<List<double>> ProcessRawNumbers(IEnumerable<string> lines)
    {
        var numbers = new List<List<double>>();
        /*System.Threading.Tasks.*/
        Parallel.ForEach(lines, line =>
        {
            lock (numbers)
            {
                numbers.Add(ProcessLine(line));
            }
        });
        return numbers;
    }

private static List<double> ProcessLine(string line)
    {
        var list = new List<double>();
        foreach (var s in line.Split(Separators, StringSplitOptions.RemoveEmptyEntries))
        {
            double i;
            if (Double.TryParse(s, out i))
            {
                list.Add(i);
            }
        }
        return list;
    }

で同じことをしたいと思いDataGridViewます。これはどのように達成できますか?

DataGridView私は次のように入力します:

ここに画像の説明を入力してください

また、列数を動的に変更することはできますか?

4

1 に答える 1

0

aに入力されたデータはDataGridView、その行とセルに格納されます。データを抽出するには、行とセルを手動で繰り返す必要があります。

public List<string[]> ExtractGridData(DataGridView grid)
{
    int numCols = grid.Columns.Count;
    List<string[]> list = new List<string[]>();
    foreach (DataGridViewRow row in grid.Rows)
    {
        if (row.IsNewRow) // skip the new row
            continue;
        string[] cellsData = new string[numCols];
        foreach (DataGridViewCell cell in row.Cells)
            if (cell.Value != null)
                cellsData[cell.ColumnIndex] = cell.Value.ToString();
        list.Add(cellsData);
    }

    return list;
}

Columns列を動的に変更する場合は、グリッドのプロパティにアクセスできます。たとえば、列を追加するには、次のように記述できます。

dataGridView1.Columns.Add("NewColumn", "New Column");

またParallel.ForEach、シナリオで使用しても利点はありません。データを順次処理する必要があり、lockステートメントを使用すると、順次処理が強制されるためです。したがって、並列処理はありません。

于 2013-03-09T06:48:40.330 に答える