C#foreach只获得不同的值

use*_*432 8 c#

我有以下代码:

foreach (Logs log in _logsDutyStatusChange)
{
    string driverid = log.did;
}
Run Code Online (Sandbox Code Playgroud)

我怎么只在driverid字符串中添加不同的驱动程序ID?

谢谢

And*_*rei 13

你应该做:

foreach (string id in _logsDutyStatusChange.Select(x=>x.did).Distinct())
{
    string driverid = id;
}
Run Code Online (Sandbox Code Playgroud)

  • @juharr:我认为假设代码不仅仅是循环体内的变量声明是合理的. (3认同)

Dar*_*l42 6

嗯...也许用IEnumerable< T >Distinct()功能?


Jam*_*rgy 5

您的代码现在没有添加任何内容,它只是为每个值设置一个字符串(在循环范围内声明)。最终结果将只是最后一个值,无论如何它都超出了以下代码的范围。如果你想把它们全部附加到一个字符串中,用逗号分隔,例如,试试这个:

string driverids = string.Join(",", _logsDutyStatusChange
  .Select(item=>item.did)
  .Distinct()
  .ToArray());
Run Code Online (Sandbox Code Playgroud)