【发布时间】:2020-06-15 13:20:24
【问题描述】:
所以我有很多变量,例如 status_CR001、status_CR002、status_CR003。
我想根据 for 循环获取该变量,这是我的代码:
for (int i = 1; i<5; i++) {
T_Log_Result.id_log = GetUniqID();
T_Log_Result.email_user = userID;
T_Log_Result.bagian = "CR00"+i;
T_Log_Result.report_status = status_CR00(i);// PROBLEM AT THIS LINE
T_Log_Result.phase = 1;
T_Log_Result.schedule = filter + " Mingguan";
T_Log_Result.date_created = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
T_Log_Result.date_updated = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
_context.Add(T_Log_Result);
await _context.SaveChangesAsync();
}
所以我不必这样做:
T_Log_Result.id_log = GetUniqID();
T_Log_Result.email_user = userID;
T_Log_Result.bagian = "CR001";
T_Log_Result.report_status = status_CR001;//THIS LINE
T_Log_Result.phase = 1;
T_Log_Result.schedule = filter + " Mingguan";
T_Log_Result.date_created = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
T_Log_Result.date_updated = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
_context.Add(T_Log_Result);
await _context.SaveChangesAsync();
T_Log_Result.id_log = GetUniqID();
T_Log_Result.email_user = userID;
T_Log_Result.bagian = "CR002";
T_Log_Result.report_status = status_CR002;//THIS LINE
T_Log_Result.phase = 1;
T_Log_Result.schedule = filter + " Mingguan";
T_Log_Result.date_created = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
T_Log_Result.date_updated = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
_context.Add(T_Log_Result);
await _context.SaveChangesAsync();
在 PHP 上很容易做到这一点,但是 C# 呢?
PHP 代码示例:
$status_CR001="first";
$status_CR002="second";
$status_CR003="third";
for ($i = 1; $i < 4; $i++) {
echo ${'status_CR00'.$i};
}
【问题讨论】:
-
您可能想要
Dictionary<int, string>或其他东西。 -
或者使用
array或List会,问题解决了 -
status_CR001感觉它应该是一个数组?什么是status_CR001(等);我们能看到它们是在哪里声明的吗? -
它不是一个数组,它只是一个我为测试而创建的变量。
-
使用数组或集合而不是不同的变量。然后您可以使用数组索引进行循环。
标签: c# for-loop variables .net-core