I have a number of non-nested if statements that look like this:
if (!bytes[nameof(PropertyVersion.Price)].SequenceEqual(dbBytes[nameof(PropertyVersion.Price)])) changes += $"Price {TextHelper.AssessValueIncreasedOrDecreased(dbPropertyVersion.Price, propertyVersion.Price)} from: £{dbPropertyVersion.Price:N0}. ";
if (!bytes[nameof(PropertyVersion.PriceMin)].SequenceEqual(dbBytes[nameof(PropertyVersion.PriceMin)])) changes += $"Min Price {TextHelper.AssessValueIncreasedOrDecreased(dbPropertyVersion.PriceMin, propertyVersion.PriceMin)} from: £{dbPropertyVersion.PriceMin:N0}. ";
if (!bytes[nameof(PropertyVersion.PriceMax)].SequenceEqual(dbBytes[nameof(PropertyVersion.PriceMax)])) changes += $"Max Price {TextHelper.AssessValueIncreasedOrDecreased(dbPropertyVersion.PriceMax, propertyVersion.PriceMax)} from: £{dbPropertyVersion.PriceMax:N0}. ";
if (!bytes[nameof(PropertyVersion.PriceQualifier)].SequenceEqual(dbBytes[nameof(PropertyVersion.PriceQualifier)])) changes += $"Price qualifier updated from: {dbPropertyVersion.PriceQualifier}. ";
if (!bytes[nameof(PropertyVersion.ChainFree)].SequenceEqual(dbBytes[nameof(PropertyVersion.ChainFree)])) changes += $"Chain updated from: {dbPropertyVersion.ChainFree}. ";
if (!bytes[nameof(PropertyVersion.Description)].SequenceEqual(dbBytes[nameof(PropertyVersion.Description)])) changes += "Description updated. ";
if (!bytes[nameof(PropertyVersion.Tenure)].SequenceEqual(dbBytes[nameof(PropertyVersion.Tenure)])) changes += $"Tenure updated from: {dbPropertyVersion.Tenure}. ";
if (!bytes[nameof(PropertyVersion.Auction)].SequenceEqual(dbBytes[nameof(PropertyVersion.Auction)])) changes += $"Auction updated from: {dbPropertyVersion.Auction}. ";
if (!bytes[nameof(PropertyVersion.ImageCount)].SequenceEqual(dbBytes[nameof(PropertyVersion.ImageCount)])) changes += $"Image count {TextHelper.AssessValueIncreasedOrDecreased(dbPropertyVersion.ImageCount, propertyVersion.ImageCount)} from: {dbPropertyVersion.ImageCount}. ";
if (!bytes[nameof(PropertyVersion.ImageUrl)].SequenceEqual(dbBytes[nameof(PropertyVersion.ImageUrl)])) changes += "Image URL updated. ";
if (!bytes[nameof(PropertyVersion.VideoCount)].SequenceEqual(dbBytes[nameof(PropertyVersion.VideoCount)])) changes += $"Video count {TextHelper.AssessValueIncreasedOrDecreased(dbPropertyVersion.VideoCount, propertyVersion.VideoCount)} from: {dbPropertyVersion.VideoCount}. ";
if (!bytes[nameof(PropertyVersion.VideoUrl)].SequenceEqual(dbBytes[nameof(PropertyVersion.VideoUrl)])) changes += "Video URL updated. ";
if (!bytes[nameof(PropertyVersion.FloorPlanCount)].SequenceEqual(dbBytes[nameof(PropertyVersion.FloorPlanCount)])) changes += $"Floorplan count {TextHelper.AssessValueIncreasedOrDecreased(dbPropertyVersion.FloorPlanCount, propertyVersion.FloorPlanCount)} from: {dbPropertyVersion.FloorPlanCount}. ";
if (!bytes[nameof(PropertyVersion.FloorPlanUrl)].SequenceEqual(dbBytes[nameof(PropertyVersion.FloorPlanUrl)])) changes += "Floorplan URL updated. ";
if (!bytes[nameof(PropertyVersion.EpcRatingCount)].SequenceEqual(dbBytes[nameof(PropertyVersion.EpcRatingCount)])) changes += $"EPC certificate count {TextHelper.AssessValueIncreasedOrDecreased(dbPropertyVersion.EpcRatingCount, propertyVersion.EpcRatingCount)} from: {dbPropertyVersion.EpcRatingCount}. ";
if (!bytes[nameof(PropertyVersion.EpcRatingUrl)].SequenceEqual(dbBytes[nameof(PropertyVersion.EpcRatingUrl)])) changes += "EPC certificate URL updated. ";
if (!bytes[nameof(PropertyVersion.BrochureCount)].SequenceEqual(dbBytes[nameof(PropertyVersion.BrochureCount)])) changes += $"Brochure count {TextHelper.AssessValueIncreasedOrDecreased(dbPropertyVersion.BrochureCount, propertyVersion.BrochureCount)} from: {dbPropertyVersion.BrochureCount}. ";
if (!bytes[nameof(PropertyVersion.BrochureUrl)].SequenceEqual(dbBytes[nameof(PropertyVersion.BrochureUrl)])) changes += "Brochure URL updated. ";
if (!bytes[nameof(PropertyVersion.ViewCount30Days)].SequenceEqual(dbBytes[nameof(PropertyVersion.ViewCount30Days)])) changes += "View count updated. ";
As you can see, each if statement is essentially checking for the same condition, and appends some text to a string variable if the condition is not met.
My question is, what design patterns can I utilise to not make the code look so messy?
(I've tried refactoring the if logic into a method and that doesn't really look much more appealing than how it is currently)