c#使用长度条件选择多个元素
本文关键字:选择 元素 条件 | 更新日期: 2023-09-27 18:15:37
我有一个包含字符串的列表,我想要一些提示/帮助如何选择多个元素,以便所选元素的总长度为13。
我有一个想法,使用linq可能是一个很好的解决方案,但我还不是很喜欢linq。
Thanks in advance:)
这里是一些代码,我已经尝试了之前,我的帖子。但是由于文件包含+2500行,所以花费的时间太长了。
List<string> textList = new List<string>(File.ReadAllLines(@"D:'text"));
List<string> newTextList = new List<string>();
foreach (string x in textList)
{
foreach (string y in textList)
{
if ((x + y).Length == 13)
{
newTextList.Add(x + " " + y);
}
}
}
下面是重写的代码:
List<string> textList = new List<string>(File.ReadAllLines(@"D:'text"));
List<string> newTextList = new List<string>();
for (int i = 1; i <= 12; i++)
{
List<string> list1 = new List<string>(textList.Where(x => x.Length == i));
List<string> list2 = new List<string>(textList.Where(x => x.Length == 13-i));
foreach (string x in list1)
{
foreach (string y in list2)
{
newTextList.Add(x + " " + y);
}
}
}
有什么方法可以做下面这样的事情吗?
List<string> list1 = new List<string>(textList.Where(x,y => x.Length + y.Lenght == 13));
感谢您的反馈
你可以尝试这样做:
int currentLength=0;
var items = list.TakeWhile(x => (currentLength += x.Length ) <= 13);