Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.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:wpf窗口的集合_Wpf_Vb.net_Wpf Controls - Fatal编程技术网

VB.Net:wpf窗口的集合

VB.Net:wpf窗口的集合,wpf,vb.net,wpf-controls,Wpf,Vb.net,Wpf Controls,我对VB.Net还很陌生 我正在写一个类似于调查的程序。WPF窗口按顺序依次弹出问题。现在,我的客户要求随机排列一些窗口的顺序。我想我可以有一个窗口集合,并以随机顺序依次呈现这些窗口。然而,我没有找到任何关于它的信息 有人能举例说明我如何将不同的窗口存储在某种集合中,然后按顺序显示它们吗?您应该能够使用以下内容:(未经测试) 请注意,标准的.NET随机化器只是伪随机的,如果出于统计目的等需要随机性,那么它是一个糟糕的选择(不过,不难找到更好的随机数生成器) LINQ查询的解释: 迭代l_窗口,

我对VB.Net还很陌生

我正在写一个类似于调查的程序。WPF窗口按顺序依次弹出问题。现在,我的客户要求随机排列一些窗口的顺序。我想我可以有一个窗口集合,并以随机顺序依次呈现这些窗口。然而,我没有找到任何关于它的信息


有人能举例说明我如何将不同的窗口存储在某种集合中,然后按顺序显示它们吗?

您应该能够使用以下内容:(未经测试)

请注意,标准的.NET随机化器只是伪随机的,如果出于统计目的等需要随机性,那么它是一个糟糕的选择(不过,不难找到更好的随机数生成器)

LINQ查询的解释:

  • 迭代l_窗口,将集合中的每个项目分配给
    w

    From w In l_windows
    
  • 对于每个
    w
    ,创建一个具有两个属性的新匿名对象:将一个随机数分配给
    Ordinal
    ,并将
    w
    分配给
    窗口
    。(编译器将创建一个在后台描述此匿名类型的类,但您永远不需要直接处理该类。)

  • 按顺序对匿名类型对象进行排序。如果两个
    序数
    s是相同的,那么它将简单地把一个放在另一个之后(可能基于l_窗口的原始顺序,尽管我没有测试它)

  • 对于新重新排序列表中的每个匿名类型对象,选择指定给窗口属性的对象。LINQ足够聪明,可以选择值,而不是创建一个具有单个属性的匿名类型

    Select Window
    
  • 然后将
    IEnumerable(Of Window)
    分配给
    l\u random windows

注意IEnumerable表示的对象本身不是集合。编译器将实际创建一个查询对象,直到您实际尝试从集合中检索一个项(如
For
循环中),才会执行该查询对象。此查询将一次又一次执行,每次返回不同顺序的结果(因为每次都会调用
l\u random.Next()

如果您想恢复稳定的集合,只需调用
l\u randomWindows.ToList()
l\u randomWindows.ToArray()
并将结果分配给一个变量即可


您应该能够使用以下内容:(未经测试)

请注意,标准的.NET随机化器只是伪随机的,如果出于统计目的等需要随机性,那么它是一个糟糕的选择(不过,不难找到更好的随机数生成器)

LINQ查询的解释:

  • 迭代l_窗口,将集合中的每个项目分配给
    w

    From w In l_windows
    
  • 对于每个
    w
    ,创建一个具有两个属性的新匿名对象:将一个随机数分配给
    Ordinal
    ,并将
    w
    分配给
    窗口
    。(编译器将创建一个在后台描述此匿名类型的类,但您永远不需要直接处理该类。)

  • 按顺序对匿名类型对象进行排序。如果两个
    序数
    s是相同的,那么它将简单地把一个放在另一个之后(可能基于l_窗口的原始顺序,尽管我没有测试它)

  • 对于新重新排序列表中的每个匿名类型对象,选择指定给窗口属性的对象。LINQ足够聪明,可以选择值,而不是创建一个具有单个属性的匿名类型

    Select Window
    
  • 然后将
    IEnumerable(Of Window)
    分配给
    l\u random windows

注意IEnumerable表示的对象本身不是集合。编译器将实际创建一个查询对象,直到您实际尝试从集合中检索一个项(如
For
循环中),才会执行该查询对象。此查询将一次又一次执行,每次返回不同顺序的结果(因为每次都会调用
l\u random.Next()

如果您想恢复稳定的集合,只需调用
l\u randomWindows.ToList()
l\u randomWindows.ToArray()
并将结果分配给一个变量即可


谢谢我不熟悉林克。这是否意味着:1。选择随机数行并打开窗口2。按这些随机数3对这些行进行排序。按当前顺序选择所有窗口4。显示所有窗口。l_random.Next()能产生两个相同的数字吗?那么会发生什么?谢谢,谢谢。我不熟悉林克。这是否意味着:1。选择随机数行并打开窗口2。按这些随机数3对这些行进行排序。按当前顺序选择所有窗口4。显示所有窗口。l_random.Next()能产生两个相同的数字吗?那么会发生什么?谢谢
Select Window