這篇文章主要講解了“LINQ模型舉例分析”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“LINQ模型舉例分析”吧!
創(chuàng)新互聯(lián)公司云計算的互聯(lián)網(wǎng)服務(wù)提供商,擁有超過13年的服務(wù)器租用、雅安電信機房、云服務(wù)器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗,已先后獲得國家工業(yè)和信息化部頒發(fā)的互聯(lián)網(wǎng)數(shù)據(jù)中心業(yè)務(wù)許可證。專業(yè)提供云主機、虛擬主機、域名與空間、VPS主機、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
下面用代碼對比一下:
//DOM模型 XmlDocument doc = new XmlDocument(); XmlElement name = doc.CreateElement("name"); name.InnerText = "Patrick Hines"; XmlElement phone1 = doc.CreateElement("phone"); phone1.SetAttribute("type", "home"); phone1.InnerText = "206-555-0144"; XmlElement phone2 = doc.CreateElement("phone"); phone2.SetAttribute("type", "work"); phone2.InnerText = "425-555-0145"; XmlElement street1 = doc.CreateElement("street1"); street1.InnerText = "123 Main St" XmlElement city = doc.CreateElement("city"); city.InnerText = "Mercer Island"; XmlElement state = doc.CreateElement("state"); state.InnerText = "WA"; XmlElement postal = doc.CreateElement("postal"); postal.InnerText = "68042"; XmlElement address = doc.CreateElement("address"); address.AppendChild(street1); address.AppendChild(city); address.AppendChild(state); address.AppendChild(postal) XmlElement contact = doc.CreateElement("contact"); contact.AppendChild(name); contact.AppendChild(phone1); contact.AppendChild(phone2); contact.AppendChild(address); XmlElement contacts = doc.CreateElement("contacts"); contacts.AppendChild(contact); doc.AppendChild(contacts);
//LINQ模型 XElement contacts = new XElement("contacts", new XElement("contact", new XElement("name", "Patrick Hines"), new XElement("phone", "206-555-0144", new XAttribute("type", "home")), new XElement("phone", "425-555-0145" new XAttribute("type", "work")), new XElement("address", new XElement("street1", "123 Main St"), new XElement("city", "Mercer Island"), new XElement("state", "WA"), new XElement("postal", "68042") ) ) );
從對比上我們也可以看出LINQ模型的簡單性。我們還可以從LINQ模型上看出XElement的重要性。使用XElement不僅可以從頭創(chuàng)建xml文件,還可以使用Load的方法從文件加載。還可以從數(shù)據(jù)庫中取出所需元素,這就要用到LINQ TO SQL的東西了,同樣可以從數(shù)組中取出元素。操作完成后可以使用Save方法進行保存。
下面簡單介紹一下增刪查改XML。
//查詢 foreach (c in contacts.Nodes()) ...{ Console.WriteLine(c); }
我們看到在輸出XML元素的時候并不需要對每個元素進行強制的類型轉(zhuǎn)換,這里C#編譯器已經(jīng)做了這些事情,它會在輸出的時候調(diào)用每個元素的ToString()方法。
//插入元素 XElement mobilePhone = new XElement("phone", "206-555-0168"); contact.Add(mobilePhone);
這里只是很簡單的演示一些操作,至于那些復(fù)雜的操作,只要DOM模型能實現(xiàn)的LINQ模型就一定能實現(xiàn)。插入的時候還可以使用AddAfterThis和AddBeforeThis等方法,提高效率。
//刪除元素 contact.Element("phone").Remove(); //刪除某一具體元素 contact.Elements("phone").Remove(); //刪除一組元素 contacts.Element(contact").Element("address").RemoveContent(); //刪除某一元素內(nèi)容 //刪除元素還可以使適用SetElement方法,把某一元素設(shè)置為null也就是刪除了這元素。 //修改元素 contact.Element("phone").ReplaceContent("425-555-0155"); //這里是修改***個phone元素的內(nèi)容
當(dāng)然同樣可以使用SetElement方法,這里才是它的用武之地。
感謝各位的閱讀,以上就是“LINQ模型舉例分析”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對LINQ模型舉例分析這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!