私は次のタイプを持っています:
public class Parts
{
public string PartNo { get; set; }
public decimal Price { get; set; }
}
私がやりたいのは、価格または各部品を最も安いものと比較し、その差をパーセンテージで表示することです。
これは私がこれまでに試したことであり、動作します:
var part1 = new Part {PartNo = "part1", Price = 10};
var part2 = new Part {PartNo = "part1", Price = 8};
var part3 = new Part {PartNo = "part1", Price = 12};
var parts = new List<Part> {part1, part2, part3};
var list = from p in parts
orderby p.Price ascending
select p;
var sb = new StringBuilder();
var counter = 0;
decimal firstPrice=0;
foreach (Part p in list)
{
if (counter == 0)
{
firstPrice = p.Price;
}
sb.Append(p.PartNo + ": " + p.Price + "," + ((p.Price/firstPrice)-1)*100 + Environment.NewLine);
counter++;
}
Console.WriteLine(sb.ToString(), "Parts List");
これにより、次が出力されます。
part1: 8, 0
part1: 10, 25.00
part1: 12, 50.0
これは各パーツの価格上昇を示しています。それが私が達成しようとしているものですが、価格差をパーセンテージで計算するより良い方法があるのではないかと考えていました (LINQ クエリなどを使用) またはその他の方法で。
ありがとう