制作列表<;字符串>;来自字典<;字符串,字符串>;
本文关键字:字符串 lt gt 字典 列表 | 更新日期: 2023-09-27 18:19:32
我想知道是否可以根据字典值列出一个列表,其中键是指定值?
字典应该是这样的:
Sidcup-DPC1Sidcup-DPC2Blackheath-DPC3Blackheath-DPC4Bexleyheath-DPC5
事实上,我并没有完全实现Dictionary,因为以上是个好主意。以下是它的实现:
DataSet ds = EngineBllUtility.GetDPCsForImportFile(connectionString, fileID);
if (ds.Tables.Count > 0)
{
DataTable dtDPCs = EngineBllUtility.GetDPCsForImportFile(connectionString, fileID).Tables[0];
Dictionary<string, string> preliminaryList = new Dictionary<string, string>();
if (dtDPCs.Columns.Contains("DPCNumber") && dtDPCs.Columns.Contains("BranchName"))
foreach (DataRow dataRow in dtDPCs.Rows)
{
preliminaryList.Add(dataRow["BranchName"].ToString(), dataRow["DPCNumber"].ToString());
}
我有以下代码:(请原谅最后一行,这只是为了让你知道我要做什么)。
foreach (string branch in branchNames)
{
string subfolder = System.IO.Path.Combine(saveLocation, branch);
System.IO.Directory.CreateDirectory(subfolder);
List<string> certificateList = new List<string>();
certificateList.Add(DPCNumber in preliminaryList where Key = branch);
}
在上面的分支是字典中的关键字。我需要迭代,因为它需要创建一个新文件夹,然后对我正在创建的certificateList执行一些操作。
确定:
private static void TestZip()
{
Dictionary<string, string> stringstringdic = new Dictionary<string, string>();
stringstringdic.Add("1", "One");
stringstringdic.Add("2", "Two");
stringstringdic.Add("3", "Three");
stringstringdic.Add("4", "Four");
stringstringdic = stringstringdic.Where(pair => pair.Key != "1")
.ToDictionary(pair => pair.Key, pair => pair.Value);
List<string> stringlist = stringstringdic.Keys.Concat(stringstringdic.Values).ToList();
foreach (string str in stringlist)
{
Console.WriteLine(str);
}
}
//Output:
//2
//3
//4
//Two
//Three
//Four
当然,您必须更改Where子句以反映您的实际需要
如果我理解得对的话,它就像.Where(pair => pair.Key == branch)
如果我理解正确,您想将基于键的值添加到单独的列表中吗?
certificateList.Add(preliminaryList[branch])
这被简化了,因为我真的需要看到preliminaryList的声明,才能知道DPCNumber
是如何融入其中的
certificateList.Add(preliminaryList[branch].ToString())
要简单地创建一个键列表,可以执行以下操作。
var dictionary = new Dictionary<string, string>();
dictionary.Add("key1", "value1");
dictionary.Add("key2", "value2");
dictionary.Add("key3", "value3");
dictionary.Add("key4", "value4");
dictionary.Add("key5", "value5");
var list = dictionary.Keys.ToList();
这将为您提供一个值为"key1"、"key2"、"key3"、"key 4"answers"key5"的列表。
您可以在其中放入where子句以筛选出某些键。下面给出了所有包含"2"的键(随机示例),结果仅为"key2"。
var filteredList = dictionary.Keys.Where(key => key.Contains("2")).ToList();
编辑:获取给定特定键的值。
string value = dictionary["key1"];
请注意,键是一个字典,它必须是唯一的,所以对于给定的键,你只能得到一个值,而不是一个值列表。