簡體   English   中英

C# - 檢查從 XML 文件創建的列表中是否存在值

[英]C# - Checking if a value exists in a list created from an XML file

我有一個小型的 WinForm 應用程序,它是一個基本的壁紙刮刀。 它可以讓用戶將牆紙“列入黑名單”,使其不再使用。 列入黑名單后,壁紙 URL、標題和 ID 將添加到采用以下格式的 XML 文件中:

<?xml version="1.0" encoding="utf-8"?>
<!--This file stores a list of any wallpapers you blacklist.-->
<Blacklisted>
  <Wallpaper>
    <URL>http://i.imgur.com/OU3v9H6.jpg</URL>
    <Title>Gran Via Madrid Wallpaper [1920x1080]</Title>
    <ThreadID>54fsi7</ThreadID>
  </Wallpaper>
  <Wallpaper>
    <URL>http://i.imgur.com/TLXJmGB.jpg</URL>
    <Title>The Golden wallpaper HD [1920*1080]</Title>
    <ThreadID>55366b</ThreadID>
  </Wallpaper>
</Blacklisted>

獲取新牆紙后,會快速檢查牆紙 URL 是否在列入黑名單的 XML 文件中。 如果是,則未使用它並找到新牆紙。 我用於檢查牆紙是否被列入黑名單的代碼實際上並沒有導致任何錯誤,但是檢查后的其余代碼沒有執行,所以我相信我的檢查過程有問題,代碼只是“卡住”了。 這是我檢查 XML 文件的代碼:

string url = "http://example.url/image.jpg"            
XDocument xml = XDocument.Load("Blacklisted.xml");
var list = xml.Root.Elements("URL").Select(element => element.Value).ToList();

if(list.Contains(url))
{
    updateStatus("Wallpaper is blacklisted.");
    return;
}

看起來您的列表沒有正確填充。 嘗試使用 XDocument 對象中的 Descendants 方法。

var list = xml.Descendants("URL").Select(x=> x.Value).ToList();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM