我正在探索使用Oracle过程进行一些数组绑定,并且需要将我的对象列表拆分为每个属性列表。

我这样做是这样的:

List<ReviewReasons> reasons; // actually comes from method call

cmd.Parameters.Add(new OracleParameter("checked_flag", OracleDbType.Int32, ParameterDirection.Input))

cmd.Parameters["checked_flag"].Value = reasons.Select(x => x.CheckedFlag).ToArray();

cmd.ExecuteNonQuery();


我遇到的问题是reasons.CheckedFlag值是布尔值,但是数据库期望的是0或1。在开始使用数组绑定之前,我在foreach内处理转换,如下所示:

foreach(reason in reasons)
{
    string checkedFlag = reason.CheckedFlag ? "1" : "0";
    // then push into an array
}


我想知道我能否以某种方式选择Select的lambda中的reason.CheckedFlag ? "1" : "0";条件。我对Linq真的很陌生,因此非常感谢您的帮助。

最佳答案

    cmd.Parameters["checked_flag"].Value
= reasons.Select(x => x.CheckedFlag ? "1" : "0").ToArray();

关于c# - C#-Linq从对象列表中选择属性,并使用速记条件对其进行修改,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43499169/

10-13 08:17