排除循环中的最后一个元素
本文关键字:最后一个 元素 循环 排除 | 更新日期: 2023-09-27 18:33:56
我的应用程序中有一个循环。 代码如下:-
foreach (DataRow dr in dt.Rows)
ColorNames +=dr["ColorName"].ToString() + "'n";
但我不想在最后Datarow
添加'n
.有什么建议怎么做吗?
ColorNames = String.Join("'n", dt.Rows.Select(dr => dr["ColorName"].ToString()));
这是更新的版本(忘记了需要转换为可枚举):
ColorNames = String.Join("'n", dt.AsEnumerable().Select(dr => dr.Field<string>("ColorName")));
Foreach 不处理索引。
选项 1:ForEach 循环
使用 foreach 循环。循环到最后,外部循环做喜欢
ColorNames.Substring(0, ColorNames.Length-1);
选项 2:For 循环
使用 for 循环并检查所有索引的索引内部循环,直到最后。添加 ' 并在最后一个索引中不要添加 '
for (int i = 0; i < dt.Rows.Count; i++)
{
ColorNames += i < dt.Rows.Count-1
? dr["ColorName"].ToString() + "'n"
: dr["ColorName"].ToString();
}
或
for (int i = 0; i < dt.Rows.Count; i++)
ColorNames += dr["ColorName"].ToString() + (i < dt.Rows.Count-1 ? "'n": "");
选项 3:LINQ
ColorNames = String.Join("'n", dt.Rows.Select(dr => dr["ColorName"].ToString()));
var colorNamesList = dt.Rows
.Cast<DataRow>()
.Select(dr => dr["ColorName"].ToString())
.ToArray();
var colorNames = String.Join("'n", colorNames);
int count = 0;
foreach (DataRow dr in dt.Rows)
{
count++;
ColorNames +=dr["ColorName"].ToString();
if (count < dt.Rows.Count)
ColorNames += "'n";
}