小编Dan*_*ith的帖子

使用以元组为值的dictionary.ContainsValue

我有一个字典,我在一个元组中存储一个键和2个值,如下所示:

variableDictionary = new Dictionary<string, Tuple<string, string>>();
Run Code Online (Sandbox Code Playgroud)

所以我的字典是: key, <value1, value2>

我想检查一下value1是否已存储在字典中.如果我的字典是键的字符串和值的字符串,我可以使用ContainsValue.

bool alreadyStored = variableDictionary.ContainsValue(value1);
Run Code Online (Sandbox Code Playgroud)

我不知道如何找到我的value1是否在元组的value1部分的字典中,而不管value2是什么.我可以创建一个新的元组,并检查它是否包含这个元组,但我不知道如何使它有效地忽略第二个值.

.net c# dictionary

5
推荐指数
1
解决办法
452
查看次数

将 LINQ XML 与命名空间结合使用

我正在尝试在 XML 文档中查找节点,如下所示:

<?xml version="1.0"?>
<TrainingCenterDatabase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2">
  <Activities>
    <Activity Sport="CyclingTransport">
      <Id>2014-07-08T15:28:14Z</Id>
    </Activity>
  </Activities>
</TrainingCenterDatabase>
Run Code Online (Sandbox Code Playgroud)

我的目标是使用如下代码提取节点值“Id”:

XDocument doc = XDocument.Load(filePath);
List<string> urlList = doc.Root.Descendants("Id")
                          .Select(x => (string)x)
                          .ToList();
Console.WriteLine(urlList.Count);
Run Code Online (Sandbox Code Playgroud)

然而计数是 0,而我期望的是 1。

经过一些调试和编辑 XML 后,我注意到如果我更改节点TrainingCenterDatabase并删除以下属性:

<TrainingCenterDatabase>
Run Code Online (Sandbox Code Playgroud)

那么结果就是预期的计数为 1。

所以我的问题是如何考虑命名空间,以便在节点TrainingCenterDatabase具有这些属性时可以获得值?

c# xml linq

4
推荐指数
1
解决办法
633
查看次数

标签 统计

c# ×2

.net ×1

dictionary ×1

linq ×1

xml ×1