You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从C#字符串列表中获取含'>'最多的最长字符串?

筛选包含最多'>'字符的字符串

给定C#字符串列表:

List<string> list = new List<string>
{
   "Door Hardware > Door Trim",
   "Door Hardware > Door Trim > Pulls",
   "Door Hardware > Door Trim > Pulls > Flush",
   "Barn Doors & Hardware",
   "Barn Doors & Hardware > Barn Door Hardware",
   "Door Hardware",
   "Brands > Beyerle"
};

需求是从中筛选出包含>字符数量最多的字符串,即"Door Hardware > Door Trim > Pulls > Flush"。

之前使用的LINQ代码:

var myVal = list.Where(s => s.Contains('>')).OrderByDescending(s => s.Length).First();

返回的是"Barn Doors & Hardware > Barn Door Hardware",不符合需求——这段代码按字符串长度排序,而非>的数量排序,该字符串长度更长但仅包含1个>。

正确解决方案

通过LINQ先按>的数量倒序排序,若存在多个>数量相同的字符串,再按长度倒序取最长的:

var myVal = list
    .OrderByDescending(s => s.Count(c => c == '>'))
    .ThenByDescending(s => s.Length)
    .First();

说明

  1. OrderByDescending(s => s.Count(c => c == '>')):按每个字符串中>的字符数量从多到少排序,确保包含3个>的目标字符串排在首位;
  2. ThenByDescending(s => s.Length):作为兜底逻辑,当多个字符串的>数量相同时,取长度最长的那个;
  3. First():获取排序后的第一个元素,即为符合需求的结果。

内容的提问来源于stack exchange,提问作者alopezdev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 10:02:22