我有以下代码:
public static class ScraperMasterUriDetails
{
public static Dictionary<Guid, string> MasterUriDetails;
}
但是我已经决定我需要在字典Dictionary<ScraperMasterUriDetails>
中添加一个整数,所以我想我会在构造函数中添加属性和一些参数。
但是,你不能在C#中做到这一点。我如何实现我正在尝试实现的内容?
编辑:
一位经验丰富的成员编辑了我的帖子,所以我会留下它的样子。我不关心使用字典(当时正确使用它)
基本上我只想以结构方式列出三种类型的数据,除了我总是想要引用一次存储值的类的实例,因此是静态的。现在我总是做完(T)列表:
public class WebsiteTitles
{
public string WebsiteId { get; set; }
public string Keywords { get; set; }
public WebsiteTitles(string websiteguid, string keywords)
{
WebsiteId = websiteguid;
Keywords = keywords;
}
public WebsiteTitles()
{
}
}
然后完成以下
List<WebsiteTitles> _siteTitles = new List<WebsiteTitles>();
_siteTitles.Add(new WebsiteTitles("blah", "keyword"));
然而在这种情况下,我想要类似于上面的内容,但静态(不想创建实例等。我非常感谢所有的建议,因此为什么我编辑我的帖子到提供更多信息。
作为一个注释,我可能想要使用LINQ来提取一些记录,例如记录guid == guid等等。这就是我将用它的所有内容。
答案 0 :(得分:2)
答案 1 :(得分:1)
为什么不使用集合初始化程序语法? http://msdn.microsoft.com/en-us/library/bb384062.aspx
public static class ScraperMasterUriDetails
{
public static List<WebsiteTitles> MasterUriDetails = new List<WebsiteTitles>()
{
new WebsiteTitles()
{
WebsiteId = Guid.NewGuid().ToString(),
Keywords = "programming, fish, popsicles, nihilism",
},
};
}
如果您需要按ID查找网站,请务必使用字典:
public static class ScraperMasterUriDetails
{
public static Dictionary<Guid, string> MasterUriDetails = new Dictionary<Guid, string>()
{
{ Guid.NewGuid(), "programming, fish, popsicles, nihilism" },
{ new Guid("abcdef" /* etc */), "ankles, sprocket, glucose, the moon" },
};
}
编辑前:
请注意,字典不是列表。
但是,您当然可以随时向静态成员添加值。它不必在编译时定义:
public class SomeOtherClass
{
public void SomeNonStaticMethod(Guid key, string subUrl)
{
ScraperMasterUriDetails.MasterUriDetails[key] = "http://www.helpmeimstuckinsideasadnsserver.com/" + subUrl;
}
}
如果您需要更多信息,请描述您用于“添加int”的结构。如果您在定义该结构时遇到问题,请解释您希望字典的用途。你传递了一个GUID,并获得了什么信息?
答案 2 :(得分:1)
自动调用静态构造函数,而不是由您调用。它无法知道要传入的参数。
所以,