Note that there are some explanatory texts on larger screens.

plurals
  1. POExample to use a hashcode to detect if an element of a List<string> has changed C#
    primarykey
    data
    text
    <p>I have a List that updates every minute based on a Linq query of some XML elements.</p> <p>the xml changes, from time to time. It was suggested to me that I could use Hashcode to determine if any of the strings in the list have changed.</p> <p>I have seen some examples of Md5 hashcode calculations for just a string, but not for a list...could someone show me a way of doing this with a list?</p> <p>I tried something simple like int test = list1.GetHashCode; but the code is the same no matter what is in the list...</p> <p>here is the entire method with the link query and all..note the SequenceEqual at the end:</p> <pre><code> private void GetTrackInfo() { _currentTitles1.Clear(); var savedxmltracks = new XDocument(); listBox1.Items.Clear(); WebClient webClient = new WebClient(); XmlDocument xmltracks = new XmlDataDocument(); try { xmltracks.Load(_NPUrl); xmltracks.Save("xmltracks.xml"); } catch (WebException ex) { StatusLabel1.Text = ex.Message; } try { savedxmltracks = XDocument.Load("xmltracks.xml"); } catch (Exception ex) { StatusLabel1.Text = ex.Message; } var dateQuery = from c in savedxmltracks.Descendants("content") select c; _count = savedxmltracks.Element("content").Element("collection").Attribute("count").Value; var tracksQuery1 = from c in savedxmltracks.Descendants("data") select new { title = c.Attribute("title").Value, imageurl = c.Attribute("image").Value, price = c.Attribute("price").Value, description = c.Attribute("productdescription").Value, qualifier = c.Attribute("pricequalifier").Value }; var xml = new XDocument(new XDeclaration("1.0", "utf-8", "yes"), new XElement("LastUsedSettings", new XElement("TimerInterval", new XElement("Interval", Convert.ToString(numericUpDown1.Value))), new XElement("NowPlayingURL", new XElement("URL", _NPUrl)), new XElement("Email", emailAddress), new XElement("LastUpdated", DateTime.Now.ToString()))); XElement StoreItems = new XElement("StoreItems"); int i = 0; foreach (var c in tracksQuery1) { if (c.title.Length &lt;= 40 &amp; c.qualifier.Length &lt;= 12 &amp; i &lt; 10) { if (c.title != null) _title1 = c.title; if (c.imageurl != null) _imageUrl = c.imageurl; if (c.price != null) _price = c.price; if (c.description != null) _productDescription = c.description; if (c.qualifier != null) _priceQualifier = c.qualifier; //} StoreItems.Add(new XElement("Title" + i.ToString(), _title1)); _currentTitles1.Add(_title1); if (_oldTitles1.Count &gt; 0) { Console.WriteLine("OldTitle: {0}, NewTitle: {1}", _oldTitles1[i], _currentTitles1[i]); } StoreItems.Add(new XElement("Price" + i.ToString(), _price)); StoreItems.Add(new XElement("Description" + i.ToString(), _productDescription)); StoreItems.Add(new XElement("PriceQualifier" + i.ToString(), _priceQualifier)); listBox1.Items.Add("Title: " + _title1); listBox1.Items.Add("Image URL: " + _imageUrl); listBox1.Items.Add("Price: " + _price); listBox1.Items.Add("Description: " + _productDescription); listBox1.Items.Add("PriceQualifier: " + _priceQualifier); try { imageData = webClient.DownloadData(_imageUrl); } catch (WebException ex) { StatusLabel1.Text = ex.Message; } MemoryStream stream = new MemoryStream(imageData); Image img = Image.FromStream(stream); //Image saveimage = img; //saveimage.Save("pic.jpg"); img.Save("pic" + i.ToString() + ".jpg"); stream.Close(); i++; } } //Console.WriteLine("Count: " + _count); Console.WriteLine("oldTitles Count: " + _oldTitles1.Count.ToString()); Console.WriteLine("currentTitles Count: " + _currentTitles1.Count.ToString()); if (_oldTitles1.Count == 0) _oldTitles1 = _currentTitles1; if (!_oldTitles1.SequenceEqual(_currentTitles1)) { Console.WriteLine("Items Changed!"); SendMail(); _oldTitles1 = _currentTitles1; } xml.Root.Add(StoreItems); xml.Save("settings.xml"); } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload