首页 新闻 会员 周边

如何获取数组里面,除了元素字符串最长以外的元素值

0
悬赏园豆:20 [待解决问题]

何生有二十六画的主页 何生有二十六画 | 初学一级 | 园豆:141
提问于:2023-02-07 15:40
< >
分享
所有回答(3)
0

一行代码搞定

var result = array.Except(new[] { array.MaxBy(y => y.Length) });
dudu | 园豆:31043 (高人七级) | 2023-02-07 16:28

还有一种写法

var result = array.OrderBy(x => x.Length).ToArray()[..^1];
支持(0) 反对(0) dudu | 园豆:31043 (高人七级) | 2023-02-07 16:43

MaxBy这个方法没有喔,你的是.net Code语法?

支持(0) 反对(0) 何生有二十六画 | 园豆:141 (初学一级) | 2023-02-07 18:24

@何生有二十六画: 至少 .NET 6

支持(0) 反对(0) dudu | 园豆:31043 (高人七级) | 2023-02-07 18:28

@dudu: 老项目,没有这么新
(哭笑)

支持(0) 反对(0) 何生有二十六画 | 园豆:141 (初学一级) | 2023-02-08 09:43
0

使用 LINQ

using System.Linq;

...

string[] array = new string[] { "我", "你你", "我爱你" };
var results = from str in array
where str.Length < array.Max(item => item.Length)
select str;

Console.WriteLine(string.Join(",", results));
 Console.ReadKey();
···
误会馋 | 园豆:242 (菜鸟二级) | 2023-02-09 10:14
0

        /// <summary>
        /// 移除字符串数组中最长的字符串。
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static string[] RmoveMaxlenthStr (string[] str)
        {
            int index = 0;
            int lenth = str[0].Length;
            List<string> strlist = new List<string>();
            for (int i = 0; i < str.Length; i++)
            {
                if (str[i].Length > lenth)
                {
                    lenth = str[i].Length;
                    index = i;
                }
                strlist.Add(str[i]);
            }
            strlist.RemoveAt(index);
            return strlist.ToArray();
        }
中华鲟3670 | 园豆:847 (小虾三级) | 2023-02-09 23:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册