72692
基礎的な質問かもしれないのですが、  
列名を指定するだけだと下のコードの `public string []{get; set;}`  
`[]` の部分を変えるだけでカラム名を指定できると思うのですが、  
列名＝列番号にしたい場合、どのようにすれば列を番号で表示することができるのでしょうか？  
以下のコードに結合結果を格納しております。

```

    code,name,number
    A,B,C
    A,B,C
    
```

実現したいこと

```

    1,2,3
    A,B,C
    A,B,C
    
```

上記の列名についてはdataGridviewのカラムについてになります。

開発環境:  
Visual Studio 2017

```

    public class ResultDT
    {
        public string code  {get; set;}
        public string name  {get; set;}
        public string number{get; set;}
    
    }
    
    protected void Result_Click(object sender, EventArgs e)
    {
        List <OracleDT> oracleDTs = createOracleList();
        List<CsvDT> csvDTs = createCsvList();
    
        int i=1;
        var innnerjoin = from o in oracleDTs
            join c in csvDTs
            on o.code equals c.code
            select new ResultDT
            {
                code=o.code,
                name=c.name,
                number=i++
            }
        
        試したコード
        DataGridView1.Columns[0].HeaderText = "1";//エラー発生
    
        //ソース作成
        BindingSource source = new BindingSource();
        //ソースにinnnerjoin内のデータ挿入
        source.DataSource=innnerjoin;
        //DataGridViewにデータを挿入
        dataGridView1.DataSource = source;
    
```
CC BY-SA 4.0
2020-12-16T00:26:02.120
72679
2020-12-16T08:48:07.357
2020-12-16T06:46:07.577
42419
42419
question
c# linq datagridview
列名を列番号にしたい
```

    DataGridView1.Columns[0].HeaderText = "1";//エラー発生
    
```

DataGridVierw.DataSource に BindingSource
をバインディングする前に、存在しない列にアクセスしようとして例外が発生してます。

```

    dataGridView1.DataSource = source;
    
```

の後に HeaderText にアクセスしてください。列番号の設定は以下のようになるかと。

```

    foreach (DataGridViewColumn col in this.dataGridView1.Columns) {
        col.HeaderText = (col.Index + 1).ToString();
    }
    
```
CC BY-SA 4.0
2020-12-16T08:48:07.357
72692
2020-12-16T08:48:07.357
19617
72679
answer