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)); 

感谢您的反馈

c#使用长度条件选择多个元素

你可以尝试这样做:

int currentLength=0;
var items = list.TakeWhile(x => (currentLength += x.Length ) <= 13);