次のような文字列のリストがあります。
public string TypeOrig { get; set; }
public string TypeAdj { get; set; }
public string TypeClass { get; set; }
public string TypeMsg { get; set; }
public string QtyOrig { get; set; }
public string QtyAdj { get; set; }
public string QtyClass { get; set; }
public string QtyMsg { get; set; }
データベースの行に基づいて、次のように文字列を入力します。
switch(fRow["fieldName"].ToString())
{
case "partType":
TypeOrig = fRow["original"].ToString();
TypeAdj = fRow["adjusted"].ToString();
TypeClass = fRow["status"].ToString();
TypeMsg = fRow["message"].ToString();
break;
case "qty":
QtyOrig = fRow["original"].ToString();
QtyAdj = fRow["adjusted"].ToString();
QtyClass = fRow["status"].ToString();
QtyMsg = fRow["message"].ToString();
break;
}
これを次のように減らしたいと思います。
switch(fRow["fieldName"].ToString())
case "partType": fieldName = "Type";
break;
case "qty": fieldName = "Qty";
break;
}
fieldName + "Orig" = fRow["original"].ToString();
fieldName + "Adj" = fRow["adjusted"].ToString();
fieldName + "Class" = fRow["status"].ToString();
fieldName + "Msg" = fRow["message"].ToString();
追加情報:
- データベースのフィールド名にはいくつかの例外があるため、単純にフィールド名を使用することはできず、スイッチを使用する必要があります。
- また、データベースのいくつかのフィールドに非標準の文字列を入力する必要があります。
- 私は現在 32 のフィールド名を持っていますが、それはさらに増える可能性があるため、コードの長さを減らすことで管理が非常に簡単になります。(@Servy のアプローチにより、19 に減少しました)
- 結果の文字列がビューで使用されます。
文字列名を動的に設定して入力するにはどうすればよいですか?