Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何编辑此循环?_Vb.net_Loops_For Loop - Fatal编程技术网

Vb.net 如何编辑此循环?

Vb.net 如何编辑此循环?,vb.net,loops,for-loop,Vb.net,Loops,For Loop,我已经写了一小段代码,但它并没有像我所希望的那样工作。 我的目标: 我有一个三行的文本框。每行=一个产品。 我有第二个文本框,有两行。每行=一个产品的1个变体 我的结果应该是这样的: 人造草|红色 人造草。1 |蓝色 深孔板|红色 深孔板。1 |蓝色 测试孔板|红色 测试孔板。1 |蓝色 我有以下代码(删除了所有不必要的参数): 名称是产品文本框的每一行。 变体是变体文本框的每一行 问题是:它可以工作,但前提是产品的变体数量与产品数量相同。但我只需要例如2个变种,但3个产品。那么,在哪里编辑这个

我已经写了一小段代码,但它并没有像我所希望的那样工作。 我的目标:

我有一个三行的文本框。每行=一个产品。 我有第二个文本框,有两行。每行=一个产品的1个变体

我的结果应该是这样的:

人造草|红色

人造草。1 |蓝色

深孔板|红色

深孔板。1 |蓝色

测试孔板|红色

测试孔板。1 |蓝色

我有以下代码(删除了所有不必要的参数):

名称是产品文本框的每一行。 变体是变体文本框的每一行

问题是:它可以工作,但前提是产品的变体数量与产品数量相同。但我只需要例如2个变种,但3个产品。那么,在哪里编辑这个循环呢

非常感谢!:)


正如jmchiliney所提到的,最好使用
行()
将文本框文本保存在数组中,然后在同一数组上执行循环

''Get all Products in array
Dim products As String() = ProductTB.Lines()
''Get all attributes in array
Dim attrributes As String() = VariantsTB.Lines()
''Create as list for result
Dim resultlist As New List(Of String)

''Loop over product
For Each prod As String In products

    ''Loop over Attributes
    For Each atr As String In attrributes
        Dim resultprd = prod & "|" & atr
        resultlist.Add(resultprd)
    Next

    '' if you want proiducts without attributes also add here 
    ''resultlist.Add("Prod")
Next

首先,不要像那样反复使用
属性。该属性不是“活动的”,即它与控件中的某些现有数据不对应。每次获取属性值时,它都必须构造一个数组。因此,您应该在代码的开头仅获取一次每个
属性。您应该将这些数组分配给变量,然后重复使用这些变量,因此重复使用相同的数组。至于这个问题,您自己还没有做足够的工作。事件的过程不是你在运行代码,它不起作用,所以你在问一个问题。您需要首先实际调试代码。您需要设置一个断点并逐行遍历代码,检查每一步的状态。您需要确切地知道在每一步之前您预期会发生什么,并且您可以测试它是否在每一步之后发生。一旦现实与预期不同,你就孤立了一个问题。即使你无法解决问题,至少你可以向我们提供更多相关信息。如果现实与你的预期没有任何不同,那么是你的预期错了,因此你需要重新评估它们。你应该回去写一个实际的算法,手动测试它,直到你确定它能工作,然后编写代码具体实现该算法。我已经删除了我的答案,因为@jmchilinney的评论对你更有价值
''Get all Products in array
Dim products As String() = ProductTB.Lines()
''Get all attributes in array
Dim attrributes As String() = VariantsTB.Lines()
''Create as list for result
Dim resultlist As New List(Of String)

''Loop over product
For Each prod As String In products

    ''Loop over Attributes
    For Each atr As String In attrributes
        Dim resultprd = prod & "|" & atr
        resultlist.Add(resultprd)
    Next

    '' if you want proiducts without attributes also add here 
    ''resultlist.Add("Prod")
Next