作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用两个 for each 循环将值连接到一个变量中,这样我就可以在查找/替换方法中将值写入 Word。我的问题是下面的语法会将值写入控制台两次,所以这是写入控制台
Shirt - SH11
Hat - HA22
Socks - SO33
Shirt - SH11
Hat - HA22
Shirt - SH11
我希望写入控制台的是像下面这样的值一次:
Shirt - SH11
Hat - HA22
Socks - SH11
这是我的语法:
DataTable table = new DataTable();
table.Columns.Add("Name", typeof(string));
table.Columns.Add("ItemsSold", typeof(string));
table.Columns.Add("ItemIDs", typeof(string));
table.Rows.Add("James Jo", "Shirt; Hat; Socks;", "SH11; HA22; SO33");
var itemsSold = table.Rows[0].Field<string>("ItemsSold").Split(new string[] {"; "}, StringSplitOptions.RemoveEmptyEntries);
var ItemIDs = table.Rows[0].Field<string>("ItemIDs").Split(new string[] {"; "}, StringSplitOptions.RemoveEmptyEntries);
string displayformat = "";
foreach (string is in itemsSold)
{
foreach (string id in ItemIDs)
{
string s = is.Replace(";", "");
string d = id.Replace(";", "");
displayformat += s + " - " + d + Environment.NewLine;
}
}
Console.WriteLine(displayformat);
最佳答案
如果你真的想在循环中执行此操作,则需要将其修改为
for(int i=0;i<itemsSold.Count();i++)
{
string s = itemsSold[i].Replace(";", "");
string d = ItemIDs[i].Replace(";", "");
displayformat += s + " - " + d + Environment.NewLine;
}
但是,请注意,使用 Zip 方法可以轻松完成此操作。您可以编写
而不是整个循环displayformat = string.Join(Environment.NewLine,
itemsSold.Zip(ItemIDs,
(items, ids) => $"{items} - {ids}").Replace(";",string.Empty));
Console.WriteLine(displayformat);
您可以阅读 here 中的 Enumerable.Zip
关于c# - 在 For Each 循环中连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54000033/
我是一名优秀的程序员,十分优秀!