gpt4 book ai didi

c# - 使用 linq 取出 foreach

转载 作者:行者123 更新时间:2023-11-30 19:13:43 29 4
gpt4 key购买 nike

有没有办法在 linq 中删除以下代码中的 foreach 并产生相同的输出?

    DropDownList ddl = new DropDownList();
foreach (DataRow row in ds.Tables[0].Rows)
{
if ((byte)row["ListTypeID"] == 0)
{
item = new ListItem(row["ListText"].ToString(), string.Format("{0}:{1}", row["ListTypeID"].ToString(), row["ListID"].ToString()));
ddl.Items.Add(item);
}
else
{
item = new ListItem(row["ListText"].ToString(), string.Format("{0}", row["ListID"].ToString()));
ddl.Items.Add(item);
}
}

最佳答案

与其将所有内容都塞进一行 lambda,我更喜欢可读性而不是节省行空间:

ddl.Items.AddRange(ds.Tables[0].Rows.Select( row => 
{
var listText = row["ListText"];
var listTypeId = (byte)row["ListTypeID"];
var listId = row["ListID"];

var format = listTypeId == 0 ? "{0}:{1}" : "{1}";
var itemText = String.Format(format, listTypeID, listId);

return new ListItem(listText, itemText);
}
));

关于c# - 使用 linq 取出 foreach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3088545/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com