using System.Collections.Generic;
public static void Main()
var xml = @"<?xml version=""1.0""?>
<student_update date=""2022-04-19"" program=""CA"" checksum=""20021682"">
<student_no>10010823</student_no>
<registration_no>216</registration_no>
<notes>Update Grade Test</notes>
<student_no>10010859</student_no>
<course_no>M-50032</course_no>
<registration_no>*</registration_no>
<notes>Register Course Test</notes>
XDocument xDocument = XDocument.Load(new StringReader(xml));
XElement root = xDocument.Element("student_update");
IEnumerable<XElement> studentnoElement = xDocument.Descendants().Where(x => x.Name == "student_no");
int checksum = studentnoElement.Sum(x => Int32.Parse(x.Value));
Console.WriteLine(checksum);
Console.WriteLine(root.Attribute("checksum").Value.GetType());
int rootCheckSum = Convert.ToInt32(root.Attribute("checksum").Value);
Console.WriteLine(rootCheckSum == checksum);
if (!rootCheckSum.Equals(checksum))
throw new Exception(String.Format("Incorrect checksum total " + "for file \n"));