【发布时间】:2018-12-06 22:37:28
【问题描述】:
我正在尝试将字典中的值输出到 CSV,并且能够做到这一点。但是面临需要输出到 csv 的特定列的问题。我需要将字典中的特定数据值输出到 csv 中的特定列。
Dictionary<string, List<string>> file = new Dictionary<string, List<string>>();
for (var i = 0; i < stringList.Count(); i++)
{
string line = stringList[i];
string path = line.Replace("\r\n", "");
path = path.Replace(" ", "");
path = path.TrimEnd(':');
if (File.Exists(path))
{
file[path] = file.ContainsKey(path) ? file[path] : new List<string>();
for (var j = i + 1; j < stringList.Count(); j++)
{
string line2 = stringList[j];
string path2 = line2.Replace("\r\n", "");
path2 = path2.Replace(" ", "");
path2 = path2.TrimEnd(':');
if (File.Exists(path2))
{
i = j - 1;
break;
}
else
{
if (path2.Contains("Verified") | path2.Contains("Algorithm"))
{
var strings = path2.Split(':');
var listValue = strings[1].Trim();
file[path].Add(listValue);
}
}
}
}
}
using (var writer = new StreamWriter(outputdir + "\\output_" +
DateTime.Now.ToString("yyyy_MM_dd_HHmmss") + ".csv"))
{
writer.WriteLine("FilePath,Signature,HashValueSHA1, HashValueSHA2, HashValueMD5, Other");
foreach (var keyvaluepair in file)
{
if (!keyvaluepair.Value.Contains("Unsigned"))
{
var values = String.Join(",", keyvaluepair.Value.Distinct().Select(x => x.ToString()).ToArray());
writer.WriteLine("{0},{1}", keyvaluepair.Key, values);
}
}
}
当前输出如下所示:
我需要的示例输出如下:
字典键(字符串)将保存文件路径,值(列表)将保存如下内容:
签名 沙1RSA md5RSA md5RSA
签名 沙1RSA 沙1RSA sha256RSA sha256RSA
请建议我如何获得所需的输出。
【问题讨论】:
-
您能否更新您的问题以包括字典的定义(例如,它是
Dictionary<string,Dictionary<string,string>>)以及其中的信息是如何组织的? -
@JohnWu 嗨,约翰,我刚刚包含了我的附加代码
-
如果可能的话,你能把stringList中的内容也贴出来吗?
-
@kamalpreet:请查找更新后的帖子
-
dictionaryfile没有在任何地方声明,看起来这是重要的部分。