gpt4 book ai didi

c# - 按价格排序列表 C#

转载 作者:行者123 更新时间:2023-12-04 08:40:27 26 4
gpt4 key购买 nike

我正在尝试根据列表中每个项目的价格对列表进行排序。
这是我希望我的输出的样子:

            ROLLS_ROYCE1 -- 6.608 €
ROLLS_ROYCE3 -- 4.956 €
ROLLS_ROYCE2 -- 0.826 €

但是,这是当前输出的实际情况:
            ROLLS_ROYCE1 -- 6.608 €
ROLLS_ROYCE2 -- 0.82 €
ROLLS_ROYCE3 -- 4.956 €
这是我的代码:
public void MyFunction() 
{
List<string> mylist = new List<string>(new string[]
{
"ROLLS_ROYCE1 -- 0,826 € -- 8 PCS -- 14:02:53.876",
"ROLLS_ROYCE2 -- 0,826 € -- 1 PCS -- 17:02:53.888",
"ROLLS_ROYCE3 -- 0,826 € -- 6 PCS -- 18:09:55.888"
});

foreach (string f in mylist)
{
decimal b = Convert.ToDecimal(GetPrice(f), CultureInfo.GetCultureInfo("de-DE")) * Convert.ToDecimal(GetPieces(f));
tradesforbigbuyslist += GetName(f) + " -- " + b.ToString() + " €" +
Environment.NewLine;
}

string[] splittedt2 = tradesforbigbuyslist.Split(new string[] {
System.Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);

listBox3.DataSource = splittedt2;
}

public string GetPrice (string sourceline)
{
string newstring = sourceline;
string test1 = newstring.Replace(FetchThemAll.SubstringExtensions.Before(newstring, "--"), "");
string textIWant = test1.Replace("--", "");
string finalPrice = FetchThemAll.SubstringExtensions.Before(textIWant, "€");


return finalPrice;
}

public string GetPieces(string sourceline)
{
string ertzu = sourceline;
string ertzu1 = FetchThemAll.SubstringExtensions.Between(ertzu, "€", "PCS");
string ertzu2 = ertzu1.Replace("--", "");

return ertzu2;
}

public string GetName(string sourceline)
{
string barno = FetchThemAll.SubstringExtensions.Before(sourceline, "--");

return barno;
}
如何正确排序这些字符串?

最佳答案

您可以通过将每一行输入表示为一个具有相关属性的类来简化很多这项工作。如果准确性像处理真钱一样非常重要,那么固定精度数据类型应该代表价格。但是,为了简单起见,我在下面使用了 double。

public class Car {
public string Name;
public short Pieces;
public double Price;
}
然后你会在开始时解析它们并得到这些 Car 项目的列表。假设上面的价格代表您希望通过以下 linq 查询获得的列表排序的所需值。
var cars = new List<Cars>(); //Assumed definition
var frenchCulture = CultureInfo.CreateSpecificCulture("fr-FR"); //For Euros symbol usage later
//Parse Logic in Between
var sortedCars = cars.OrderByDescending(c => c.Price); //Linq Query yielding IEnumerable. If you must have a list simply append toList()
那么你的输出可能是这样设置的。
foreach (var car in sortedCars)
// output with string.format("{0} -- {1}", car.Name, car.Price.ToString("C3", frenchCulture))
警告此代码未经测试,但应该大致正确。我确实对字符串格式做了一些研究。

关于c# - 按价格排序列表 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64595433/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com