如何在C#</string [,]>中将值初始化为HashSet <string [,]>

时间:2011-01-14 05:40:56

标签: c# initialization hashset

我正在使用VS 2008,我需要知道如何初始化HashSet。我知道在初始化期间添加它需要一些值。如何向tblNames添加值。

System.Collections.Generic.HashSet<String[,]> tblNames;
            tblNames = new System.Collections.Generic.HashSet<string[,]>();

tblNames.Add(new String[0,0] {"tblCategory","CatName" ,}); // this is showing Error..

最终目标是防止用户输入重复值。我需要从不同的表格以及不同的表和不同的字段中检查它。我使用动态查询来查询数据库。我需要以一些索引,值,值格式for eg My tablename is tblCategory and field name is CatName存储表名和列名。所以我将以0,tblCategory,CatName的方式存储值。所以我将Ajax用于处理程序页面,并且我正在使用上面的代码。我正在传递0以获取first value[tablename and column name],1传递给另一个表和字段,依此类推。所以我想用这种方式。

我是使用正确的方式还是以其他方式实现目标,即阻止用户输入重复值?

谢谢,哈里

4 个答案:

答案 0 :(得分:12)

如果您想在一个步骤中使用一组已知值初始化HashSet,则可以使用类似于以下内容的代码:

HashSet<string[,]> tblNames;
string[,] stringOne = new string[1, 1];
string[,] stringTwo = new string[1, 1];

tblNames = new HashSet<string[,]> { stringOne, stringTwo };

这称为集合初始值设定项。它是在C#3.0中引入的,包括以下元素:

  • 一系列对象初始值设定项,由{}标记括起,并以逗号分隔。
  • 元素初始值设定项,每个元素初始值设定项指定要添加到集合对象的元素。

答案 1 :(得分:4)

我想编写Java代码并假设它与C#

中的相同
HashSet<T> tblNames = new HashSet<T>(); // T should be same

HashSet<string> tblNames = new HashSet<string> ();
tblNames.add("a");
tblNames.add("b");
tblNames.add("c");

or simply
HashSet<string> tblNames = new HashSet<string> {"a", "b", "c"};

HashSet<String[,]> tblNames = new HashSet<String[,]> (); // same logic you can add array here
tblNames.add(stringArray1);
tblNames.add(stringArray2);

or again
HashSet<String[,]> tblNames = new HashSet<String[,]> {stringArray1, strginArray2};

答案 2 :(得分:3)

tblNames.Add(new [,] { { "0", "tblAssetCategory" }});

答案 3 :(得分:0)

要在一行中初始化并将值分配给HashSet,我们可以执行以下操作:

var set = new HashSet<string>() { "some value1", "some value2" };

在C#中,可以考虑使用对象初始化程序,可以在MSFT文档中进行了解:https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/how-to-initialize-objects-by-using-an-object-initializer