小编Edg*_*ins的帖子

通过vb.net中的不同对象属性多次对自定义对象列表进行排序

我想按多个对象属性对自定义对象列表进行排序.

例如,我有:

MyObject.A
MyObject.B
MyObject.C
Run Code Online (Sandbox Code Playgroud)

我想首先按属性"A"的值,然后按B然后按C对列表进行排序.所有这些属性都是字符串(可能相互匹配也可能不相同,可能包含也可能不包含/包含数字字符).

在通过网络挖掘后,我发现了一些适用于我只需要按一个属性对列表进行排序的情况(在本例中为"A"):

MyList.Sort(Function(x, y) x.A.CompareTo(y.A))
Run Code Online (Sandbox Code Playgroud)

这工作得很好.

所以在那之后,我想我只需要按照正确的顺序做更多种类,我尝试做这样的事情:

MyList.Sort(Function(x, y) x.C.CompareTo(y.C))
MyList.Sort(Function(x, y) x.B.CompareTo(y.B))
MyList.Sort(Function(x, y) x.A.CompareTo(y.A))
Run Code Online (Sandbox Code Playgroud)

哪种有时有效,有时则无效.如果列表条目很少(<10),则工作正常,例如,如果"A"值相等,则列表按"B"值排序,如果相等,则按"C"排序.但是,当我添加更多条目时,它会崩溃,只有最后一种排序是正确的.似乎每个下一个排序都不保留它不需要排序的条目的原始顺序.

我该如何排序?

vb.net sorting list

2
推荐指数
1
解决办法
1159
查看次数

动态对象或属性?

对于这个模糊的问题,我深表歉意,但不确定如何进行。

我需要的是一种类似于具有各种字段和属性的类对象,用于存储数据。
但是,由于并非所有字段/属性在编译时都是已知的,因此我还需要能够在运行时添加和使用新的字段/属性。

这些对象随后将被排列在列表中,并按这些字段/属性中的值排序并绑定到WPF控件。

现在,我仅使用该类:具有各种属性的类对象,但是我开始遇到问题,需要在其中添加更多字段/属性。

在vb.net中我可以使用某些东西来实现此目的吗?

编辑:

好的,我会尝试说明。

目前我有这样的事情。
假设我已经定义了这样的对象

Public Class DataEntry
    Public Property Name As String
    Public Property Type As String
    Public Property Msc As Integer
End Class
Run Code Online (Sandbox Code Playgroud)

如果我知道一开始将拥有的所有属性,那将很好地工作。如果突然需要添加其他属性,则会遇到问题:

Public Class DataEntry
    Public Property Name As String
    Public Property Type As String
    Public Property Msc As Integer
    Public Property AdditionalDescription As String
End Class
Run Code Online (Sandbox Code Playgroud)

当然,我可以重新编译整个内容,但是由于我不知道最终需要的所有可能的属性,我想知道,也许有一种方法可以从运行时实现?

还是应该使用复杂的数组堆而不是自定义对象?

vb.net

1
推荐指数
1
解决办法
3322
查看次数

在vb.net中绘制一个矩形

我想在表单上绘制一个简单的2d矩形.

因为我从未在vb.net中做过任何图形化的事情,所以我搜索了网络并找到了很多实例,它提供了与此类似的解决方案.

Public Sub DrawRectangleRectangle(ByVal e As PaintEventArgs)

    ' Create pen. 
    Dim blackPen As New Pen(Color.Black, 3)

    ' Create rectangle. 
    Dim rect As New Rectangle(0, 0, 200, 200)

    ' Draw rectangle to screen.
    e.Graphics.DrawRectangle(blackPen, rect)
End Sub
Run Code Online (Sandbox Code Playgroud)

然而,我不明白这是如何工作的......这是什么e As PaintEventArgs?该子要求输入什么?如何绘制一个简单的矩形?

对于初学者来说,我想要一些简单易用的东西,这样我就可以对它进行实验并最终学习更高级的东西.

vb.net drawrectangle

0
推荐指数
1
解决办法
2万
查看次数

标签 统计

vb.net ×3

drawrectangle ×1

list ×1

sorting ×1