C# 如何删除字符后的文本?

C# 如何删除字符后的文本?,c#,text,foreach,C#,Text,Foreach,我有一个数组,它以user:pass的形式保存用户和密码,我喜欢删除pass小于8个字符的行,或者密码使用重复的字符,比如111111222222 我尝试了string.take,但它完全需要行,我需要条件删除 public string[] lines; //open file dialogue to load the user pass file lines = File.ReadAllLines(openFileDialog1.FileName); //delete button c

我有一个数组,它以user:pass的形式保存用户和密码,我喜欢删除pass小于8个字符的行,或者密码使用重复的字符,比如111111222222

我尝试了string.take,但它完全需要行,我需要条件删除

public string[] lines;

//open file dialogue to load the user pass file

lines = File.ReadAllLines(openFileDialog1.FileName);

//delete button click event
//the place that I have problem

我有email:pass组合,如下所示: 电子邮件1:1234567895121 电子邮件2:12345 电邮4:11111 电子邮件5“4545

string[] lines =
{
    "email1:1234567895121",
    "email2:12345",
    "email3:22222222222",
    "email4:11111",
    "email5:454545454545"
};

lines = lines
    .Where(s =>
    {
        string pass = s.Split(new[] { ':' }, 2)[1];
        return pass.Length >= 8 && pass.Any(c => c != pass[0]);
    })
    .ToArray();

foreach (var s in lines)
    Console.WriteLine(s);
我希望输出像这样 电子邮件1:1234567895121 电子邮件5“4545

string[] lines =
{
    "email1:1234567895121",
    "email2:12345",
    "email3:22222222222",
    "email4:11111",
    "email5:454545454545"
};

lines = lines
    .Where(s =>
    {
        string pass = s.Split(new[] { ':' }, 2)[1];
        return pass.Length >= 8 && pass.Any(c => c != pass[0]);
    })
    .ToArray();

foreach (var s in lines)
    Console.WriteLine(s);
输出:

电子邮件1:1234567895121
电子邮件5:4545

string[] lines =
{
    "email1:1234567895121",
    "email2:12345",
    "email3:22222222222",
    "email4:11111",
    "email5:454545454545"
};

lines = lines
    .Where(s =>
    {
        string pass = s.Split(new[] { ':' }, 2)[1];
        return pass.Length >= 8 && pass.Any(c => c != pass[0]);
    })
    .ToArray();

foreach (var s in lines)
    Console.WriteLine(s);

只需循环每行的字符,查看当前值是否等于前一行:

public string[] lines = File.ReadAllLines(openFileDialog1.FileName);
var filteredLines = new List<string>(lines);
foreach(var line in lines)
{
    var pair = line.Split(':');
    var mail = pair[0];
    var pass = pair[1]; // may throw exception on invalid format of your line
    for(int i = 1; i < pass.Length; i++)
    {
        if(pass[i] == pass[i - 1])
        {
            filteredLines.Remove(line);
            break;   // will break inner loop and continue on next line
        }
    }
}
public string[]lines=File.ReadAllLines(openFileDialog1.FileName);
var filteredLines=新列表(行);
foreach(行中的var行)
{
var pair=line.Split(“:”);
var-mail=pair[0];
var pass=pair[1];//可能会对行的无效格式引发异常
for(int i=1;i
密码可以包含空格字符吗?密码只是数字吗?只需在每行搜索“11”、“22”、“33”。。。"99". 如果在一行中找到任何一条直线,请从数组中删除该直线。@mj将视情况而定,但大多数情况下不会t@HimBromBeere不,它也有字符