gpt4 book ai didi

c# - 如何修剪 List 以便删除前后的空行?

转载 作者:太空狗 更新时间:2023-10-29 20:48:58 25 4
gpt4 key购买 nike

最简单的方法是什么?

结果应该是:

1: one
2: two
3:
4:
5: five

代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TestLines8833
{
class Program
{
static void Main(string[] args)
{
List<string> lines = new List<string>();
lines.Add("");
lines.Add("one");
lines.Add("two");
lines.Add("");
lines.Add("");
lines.Add("five");
lines.Add("");
lines.Add("");

lines.TrimList();
}
}

public static class Helpers
{
public static List<string> TrimList(this List<string> list)
{
//???
}
}
}

最佳答案

好的,现在我明白了想要的结果:

public static class Helpers
{
// Adjust this to use trimming, avoid nullity etc if you you want
private static readonly Predicate<string>
NonBlankLinePredicate = x => x.Length != 0;

public static List<string> TrimList(this List<string> list)
{
int start = list.FindIndex(NonBlankLinePredicate);
int end = list.FindLastIndex(NonBlankLinePredicate);

// Either start and end are both -1, or neither is
if (start == -1)
{
return new List<string>();
}
return list.GetRange(start, end - start + 1);
}
}

请注意,这不会更改现有列表 - 它会返回包含所需内容的新列表。鉴于您已经为方法提供了返回类型,但您的示例在不使用结果的情况下调用它,因此不清楚您想要什么行为。我个人更喜欢无副作用的方法,尽管可能值得更改名称:)

关于c# - 如何修剪 List<string> 以便删除前后的空行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2325222/

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