1

汎用リスト内のオブジェクトに対応する行を追加して、テーブル (TableRow 作成で foreach を置き換える LINQ) を作成する必要があります。foreach ループを使用して、以下にリストされているように実行できます。foreach なしでLINQを使用してこの機能を実現するにはどうすればよいでしょうか?

注: オブジェクトの各プロパティに対応するテーブル セルを 1 つ追加する必要があります。

 System.Web.UI.WebControls.Table tableControl = new Table();

 foreach (FinancialTransaction transaction in transactionsList)
        {
            TableRow row = new TableRow();

            TableCell cellLineNumber = new TableCell();
            cellLineNumber.Text = Convert.ToString(transaction.Line);
            row.Cells.Add(cellLineNumber);

            TableCell cellEmpID = new TableCell();
            cellEmpID.Text = Convert.ToString(transaction.EmpID);
            row.Cells.Add(cellEmpID);

            TableCell cellSSN = new TableCell();
            cellSSN.Text = transaction.SSN;
            row.Cells.Add(cellSSN);

            tableControl.Rows.Add(row);
        }
4

3 に答える 3

3

の場合はForEachLINQを使用できますが、読みやすさを少し向上させることができます。transactionsListList

transactionsList.ForEach(transaction => {
     TableRow row = new TableRow();

     valueList = new object[] { 
                                  transaction.Line, 
                                  transaction.EmpID, 
                                  transaction.SSN 
                              };

     row.Cells.AddRange(valueList.Select(value => CreateCell(value))
                            .ToArray());

});

private TableCell CreateCell(object cellText)
{
    TableCell cell = new TableCell();
    cell.Text = Convert.ToString(cellText);

    return cell;
}
于 2012-09-25T06:43:02.013 に答える
0

Linq 自体の foreach はどうですか? またはこのリンクを確認してください

独自の拡張メソッドを作成することもできます

于 2012-09-25T06:31:16.317 に答える