我不知道如何使用第二个foreach的第一行获得第一次foreach运行的第一行。 第一个foreach的第二行与第二个foreach的第二行一起运行。
因为我将所有数据都输入List<>和foreach两个列表。
我的代码如下:
for (int i = valuesFrom; i < valuesTo; i++)
{
values = name + " " + i;
lstAliasImage.Add(values);
}
for (int j = 0; j < lstImgAdded.Items.Count; j++)
{
string imgPath = lstImgAdded.Items[j].Text;
lstNameImage.Add(imgPath);
}
foreach (var alias in lstAliasImage)
{
foreach (var items in lstNameImage)
{
txtUser.Text = alisa;
Save(items + " " + txtUser.Text);
}
}
答案 0 :(得分:2)
你可以用一个好的旧for
周期来做到这一点:
for (int i = 0; i < lstAliasImage.Count; i++) {
txtUser.Text = listAliasImage.ElementAt(i);
Save(lstNameImage.ElementAt(i) + " " + txtUser.Text);
}
我假设您alisa
表示alias
。另外,我假设元素数量相同。如果您的类型定义了索引器,那么您可以使用[i]
代替ElementAt(i)
。
答案 1 :(得分:1)
使用for循环可以解决您的问题;
for (int i = 0; i < lstAliasImage.Count; i++)
{
txtUser.Text = lstAliasImage[i];
Save(lstNameImage[i] + " " + txtUser.Text);
}
但最好以不同的方式解决这个问题。由于两个列表都是相关的,因此您应该创建一个结构,并将其存储在列表中。如果两个列表的长度不同,至少要避免错误。像
这样的东西public struct ImageStruct
{
public String alias;
public String name;
}
List<ImageStruct> images = new List<ImageStruct>();
for (int i = valuesFrom; i < valuesTo; i++)
{
images.Add(new ImageStruct()
{
alias="alias " + i,
name="name " + i
});
}
foreach (var item in images)
{
txtUser.Text = item.alias;
Save(item.name + " " + item.alias);
}
我希望你能得到这个想法(我没有测试上面的代码)。