gpt4 book ai didi

c# - 这些是使用 LINQ 将多个不同操作应用于字符串列表的最简单方法吗?

转载 作者:行者123 更新时间:2023-11-30 22:27:53 24 4
gpt4 key购买 nike

在这种情况下,文本源来自 winforms 文本框。我问这个主要是为了了解更多关于 LINQ 的信息,也许是为了展示它的优势(在我看来比循环更容易阅读)。该程序有几个要求;该函数必须从文本框中获取文本,将其拆分为单独的行,删除空行和/或重复行,并修剪行。

这些是唯一的方法吗?在 C# 中是否还有其他方法(除了遍历行列表并将满足条件的项目添加到新列表、数组等之外)?

1:

List<String> listOne = textBoxWords.Text
.Split(new char [] { '\r', '\n' })
.Select(s1 => s1.Trim())
.Where(s2 => !String.IsNullOrEmpty(s2))
.Distinct()
.ToList();

2:

List<String> listTwo = textBoxWords.Text
.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries)
.Select(s1 => s1.Trim())
.Distinct()
.ToList();

更新:建议使用此代码,但仅在不需要修剪字符串时才有效。

3:

List<String> listThree = textBoxWords.Text
.Split(new char[] { '\r', '\n' },
.Where(s1 => !String.IsNullOrWhiteSpace(s1))
.Distinct()
.ToList();

我知道它 a) 相当具体,b) 使用 DataGrid 可能更容易实现,但我维护的代码使用文本框,我不想立即重写它们。

最佳答案

 var setOne = new HashSet<string>(textBoxWords.Text
.Split(new char [] { '\r', '\n' })
.Select(s1 => s1.Trim())
.Where(s2 => !String.IsNullOrEmpty(s2)));

它与您所拥有的并不完全相同,因为结果是一个 HashSet,但根据您的场景,它看起来可能是您尝试完成的更好的数据结构。

关于c# - 这些是使用 LINQ 将多个不同操作应用于字符串列表的最简单方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11086625/

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