VB.Net:wpf窗口的集合
我对VB.Net还很陌生 我正在写一个类似于调查的程序。WPF窗口按顺序依次弹出问题。现在,我的客户要求随机排列一些窗口的顺序。我想我可以有一个窗口集合,并以随机顺序依次呈现这些窗口。然而,我没有找到任何关于它的信息VB.Net:wpf窗口的集合,wpf,vb.net,wpf-controls,Wpf,Vb.net,Wpf Controls,我对VB.Net还很陌生 我正在写一个类似于调查的程序。WPF窗口按顺序依次弹出问题。现在,我的客户要求随机排列一些窗口的顺序。我想我可以有一个窗口集合,并以随机顺序依次呈现这些窗口。然而,我没有找到任何关于它的信息 有人能举例说明我如何将不同的窗口存储在某种集合中,然后按顺序显示它们吗?您应该能够使用以下内容:(未经测试) 请注意,标准的.NET随机化器只是伪随机的,如果出于统计目的等需要随机性,那么它是一个糟糕的选择(不过,不难找到更好的随机数生成器) LINQ查询的解释: 迭代l_窗口,
有人能举例说明我如何将不同的窗口存储在某种集合中,然后按顺序显示它们吗?您应该能够使用以下内容:(未经测试) 请注意,标准的.NET随机化器只是伪随机的,如果出于统计目的等需要随机性,那么它是一个糟糕的选择(不过,不难找到更好的随机数生成器) LINQ查询的解释:
- 迭代l_窗口,将集合中的每个项目分配给
w
From w In l_windows
- 对于每个
,创建一个具有两个属性的新匿名对象:将一个随机数分配给w
,并将Ordinal
分配给w
。(编译器将创建一个在后台描述此匿名类型的类,但您永远不需要直接处理该类。)窗口
- 按顺序对匿名类型对象进行排序。如果两个
s是相同的,那么它将简单地把一个放在另一个之后(可能基于l_窗口的原始顺序,尽管我没有测试它)序数
- 对于新重新排序列表中的每个匿名类型对象,选择指定给窗口属性的对象。LINQ足够聪明,可以选择值,而不是创建一个具有单个属性的匿名类型
Select Window
- 然后将
分配给IEnumerable(Of Window)
l\u random windows
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
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