基于VB.NET的c#集合

本文关键字:集合 NET VB 基于 | 更新日期: 2023-09-27 18:04:03

你好,我是c#新手,一直在学习它。实际上,我认为我已经习惯了,有一些事情我不确定,但在问之前我会尝试研究它们。这说明了一件事我找不到收藏品。我来自VB。NET背景,以前我使用另一个类的集合来存储其属性,而不必费力地浏览数据表。我之前的代码类似于下面的

Public class UserDetails
 Public Property Username() As String
   Get
      Return sUsername
   End Get
   Set(ByVal value As String)
      sUsername = value
   End Set
 End Property
 Public Property Forename() As String
   Get
      Return sForename
   End Get
   Set(ByVal value As String)
      sForename = value
   End Set
 End Property
 Public Property Surname() As String
   Get
      Return sSurname
   End Get
   Set(ByVal value As String)
      sSurname = value
   End Set
 End Property
End Class

你得到的想法,一个类的属性,无论什么原因(这在c#中很容易,我已经设法做到了)。

public string Username { get { return sUsername; } set { sUsername = value; } }
public string Forename { get { return sForename; } set { sForename = value; } }
public string Surname { get { return sSurname; } set { sSurname = value; } }

然后我有另一个类,并为这个类创建一个对象,并将每个对象存储在一个集合中,同样如下;

clUserDetails = New Collection
Dim objUserDetails as new UserDetails
objUserDetails.Username = "SomeonesUsername"
objUserDetails.Forename = "SomeonesForename"
objUserDetails.Surname = "SomeonesSurname"
clUserDetails.Add(objUserDetails)

和类也有一个返回集合

的函数
Public Function Items() As Collection
   Return clUserDetails
End Function

现在我通过循环遍历每个对象并分配一个对象来获取属性或执行以下操作来检索它

objUsers.Items(1) 

现在在c#中,我已经尝试使用List<>,因为我找不到集合对象。我假设这是VB的事情,所以想要一些帮助,如何在c#中实现这一点。

我已经尝试了以下

private List <UserDetails> clUserDetails;
UserDetails objUserDetails = new UserDetails();
objUserDetails.Username = "Username";
objUserDetails.Forename = "Forename";
objUserDetails.Surname = "Surname";
clUserDetails.Add(objUserDetails);

,但我卡住了如何获得这个列表/集合的单个对象。

谁来帮帮我

基于VB.NET的c#集合

这是你想要的吗?

你的模型:

public class UserDetails
{
    public string Username { get; set; }
    public string Forename { get; set; }
    public string Surname { get; set; }
}

创建/添加一个用户到List<>

var userDetails = new UserDetails
{
    Username = "Username",
    Forename = "Forename",
    Surname = "Surname"
}; // object initialiser
var listOfUsers = new List<UserDetails>();
listOfUsers.Add(userDetails);

然后使用索引检索(如果存在),如下所示:

listOfUsers[0].Forename

好吧,你在现场。System.Collections.Generic中的List是您所需要的。

我简化了你的类:

class UserDetails
{
    public string Username { get; set; }
    public string Forename { get; set; }
    public string Surname { get; set; }
}

声明一个新的UserDetails列表:

List<UserDetails> clUserDetails = new List<UserDetails>();

你可以像这样添加更多的UserDetails到你的列表中:

clUserDetails.Add(new UserDetails { Username = "UserName1", Forename = "Forename1", Surname = "Surname1" });
clUserDetails.Add(new UserDetails { Username = "UserName2", Forename = "Forename2", Surname = "Surname2" });
clUserDetails.Add(new UserDetails { Username = "UserName3", Forename = "Forename3", Surname = "Surname3" });

然后可以用foreach

来循环
foreach(UserDetails userDet in clUserDetails)
{
    Console.WriteLine($"Current user details --> Username : {userDet.Username} Forename : {userDet.Forename} Surname : {userDet.Surname} ");
}

输出将是:

当前用户详细信息--> Username: UserName1 Forename: Forename1姓氏:Surname1当前用户详细信息——>用户名:UserName2当前用户详细信息-->用户名:UserName3名称:Forename3姓氏:Surname3

在c#中使用集合和数组就像在VB中一样。除了在c#中,我们使用[和]字符而不是(和)字符作为索引器。

如何使用List(或任何其他集合)的示例:
// Create a list and add some items to it.
var myList = new List<string>();
myList.Add("Item A");
myList.Add("Item B")
// Now, use the list.
string itemA = myList[0];
string itemB = myList[1];

如何使用字典的例子:

// Create a dictionary and add some items to it.
var myDic = new Dictionary<string, string>();
myDic.Add("google.com", "Search engine");
myDic.Add("stackoverflow.com", "An awesome site");
// Now, use the dictionary (get its keys value).
string google = myDic["google.com"];
string stackOverflow = myDic["stackoverflow.com"];

使用数组的例子:

// Declare an array and add some items to it.
string[] myFirstArray = { "One", "Two", "Three" }
// Declare a second array similar to the first one.
string[3] mySecondArray;
mySecondArray[0] = "One";
mySecondArray[1] = "Two";
mySecondArray[2] = "Three";
// Now, use values of the arrays.
string one = myFirstArray[0];
string two = mySecondArray[1];
string three = myFirstArray[2];