具有以下值的数组(myArray
):
3 dage¶Voksen¶1680 CZK~ 4 dage¶Voksen¶2130 CZK~ 5 dage¶Voksen¶2400 CZK~ 6 dage¶Voksen¶2640 CZK~
我想根据值中的第一个数字选择最小值,例如3,4,5,6,7,
即,在我的情况下,最小值是"3 dage¶Voksen¶1680 CZK"
。但是,这些数字可以是任何自然数{0, 1, 2, 3, 4, 5, ...}
。所以我想要一个解决方案来选择数字最小的值。
如何实现?
答案 0 :(得分:2)
你可以试试这个:
string [] myArray = new string[]{
"3 dage¶Voksen¶1680 CZK~",
"4 dage¶Voksen¶2130 CZK~",
"5 dage¶Voksen¶2400 CZK~",
"1 dage¶Voksen¶1680 CZK~",
"6 dage¶Voksen¶2640 CZK~"
};
var t= myArray.ToList();
t.Sort((a, b) => Convert.ToInt32(a.GetByRegexMatch(@"^\d+"))-Convert.ToInt32(b.GetByRegexMatch(@"^\d+"))) ;
Console.WriteLine (t);
结果:
我用过这个:
public static class EXT
{
public static string GetByRegexMatch(this string st, string RegexPattern)
{
Regex txt = new Regex( RegexPattern , RegexOptions.IgnorePatternWhitespace);
Match m = txt.Match(st);
return m.Groups[0].Value;
}
}
答案 1 :(得分:1)
试试这个
int small=Convert.ToInt32(MyArray[0].SubString(0,1));
string result = MyArray[0];
for(int i=0; i < MyArray.Length; i++)
{
if(Convert.ToInt32(MyArray[i].SubString(0,1))<small)
{
result=MyArray[i];
}
}
答案 2 :(得分:0)
string [] arr = new string[]{
"3 dage¶Voksen¶1680 CZK~",
"4 dage¶Voksen¶2130 CZK~",
"5 dage¶Voksen¶2400 CZK~",
"1 dage¶Voksen¶1680 CZK~",
"6 dage¶Voksen¶2640 CZK~"
};
int number;
int min;
min=int.Parse(new string(arr[0].Where(char.IsDigit).ToArray()));
for(int i=1;i<arr.Length;i++)
{
number = int.Parse(new string(arr[i].Where(char.IsDigit).ToArray()));
if(number<min){
min = number;
}
}