2014-02-24 50 views
0

這裏是我的XML文件檢查元素含量在XML文件中存在

<Customer> 
    <PrivateCustomer> 
    <Adresse>USA</Adresse> 
    <Phone>12345678</Phone> 
    <Name>Zaghi</Name> 
    <Age>20</Age> 
    <Sex>Man</Sex> 
    </PrivateCustomer> 
    <PrivateCustomer> 
    <Adresse>USA</Adresse> 
    <Phone>12345678</Phone> 
    <Name>John</Name> 
    <Age>22</Age> 
    <Sex>Woman</Sex> 
    </PrivateCustomer> 
</Customer> 

我不想有重複的電話號碼。當我輸入一個電話號碼到文本框中時,我希望它檢查號碼是否已經存在或不存在。如果存在,應該會出現錯誤。

這裏是我的C#代碼的一小部分:

XDocument doc = new XDocument(); 
doc = XDocument.Load("PrivateCustomer.xml"); 

var NumberExist = doc.Descendants("PrivateCustomer").Where(x => !x.Elements("Phone").Any()); 


if (NumberExist != null) 
{ 
    MessageBox.Show("Number already exist"); 
} 

回答

1

您可以使用Any方法:

XDocument doc = XDocument.Load("PrivateCustomer.xml"); 
var NumberExist = doc.Descendants("PrivateCustomer") 
       .Any(x => (string)x.Element("Phone") == textBox1.Text); 

if(NumberExist) 
{ 
    MessageBox.Show("Number already exist"); 
} 

如果所有PrivateCustomers至少有一個Phone,您的查詢將始終返回。只需使用條件Any並檢查是否有PrivateCustomer與給定的pho ne號碼。

+0

謝謝:)它的工作原理 – user3346509