【发布时间】:2015-09-16 13:35:07
【问题描述】:
我需要一个集合,其中该集合中的每个项目都由 2 个字符串组成:RemotePath 和 LocalPath。所以 RemotePath 可能是 '/var/file/File1.txt' 而 LocalPath 是 'c:\file\File1.txt'。
最初,我们像这样创建了一个结构,并像这样添加了项目。我也可以使用一个类,但是
public struct FilesToProcess
{
public string RemoteFilePath;
public string LocalFilePath;
}
List<FilesToProcess> list = new List<FilesToProcess>();
FilesToProcess myFiles = new FilesToProcess();
myFiles.RemoteFilePath = "/var/file/File1.txt";
myFiles.LocalFilePath = @"c:\file\File1.txt";
list.Add(myFiles);
myFiles.RemoteFilePath = "/var/file/File23.txt";
myFiles.LocalFilePath = @"c:\file\File23.txt";
list.Add(myFiles);
// and so on
我也可以使用class,但我正在寻找更简单的类型。至少对我来说,存储两个简单字符串的class 对于这种用途来说似乎有点过分了;我使用 struct 是因为它更直接一些,但我倾向于避免使用它们(因此有问题)。
我的问题:有没有更简单的方法可以在不使用classes 或structs 的情况下完成此操作?
谢谢。
【问题讨论】:
-
您所做的并没有错,但这是高度基于意见的。
-
我不认为
Add需要这样的两个参数... -
我会把它变成一个类而不是一个结构。或者使成员只读。实际上,让它成为一个类并让成员只读。 ;)
-
结构是值类型,类是引用类型。差异主要在于性能方面。更多信息msdn.microsoft.com/en-us/library/ms229017(v=vs.110).aspx
标签: c# .net visual-studio-2010 class struct