diff --git a/Netch/Controllers/TUNTAPController.cs b/Netch/Controllers/TUNTAPController.cs index c035d8bc..f67052e8 100644 --- a/Netch/Controllers/TUNTAPController.cs +++ b/Netch/Controllers/TUNTAPController.cs @@ -73,7 +73,7 @@ namespace Netch.Controllers { if (Global.Settings.TUNTAP.DNS.Any()) { - dns = Global.Settings.TUNTAP.DNS.Aggregate((current, ip) => $"{current},{ip}"); + dns = string.Join(",", Global.Settings.TUNTAP.DNS); } else { diff --git a/Netch/Forms/SettingForm.cs b/Netch/Forms/SettingForm.cs index fbd737b5..1b0d07aa 100644 --- a/Netch/Forms/SettingForm.cs +++ b/Netch/Forms/SettingForm.cs @@ -217,7 +217,7 @@ namespace Netch.Forms if (UseCustomDNSCheckBox.Checked) { TUNTAPDNSTextBox.Text = Global.Settings.TUNTAP.DNS.Any() - ? Global.Settings.TUNTAP.DNS.Aggregate((current, ip) => $"{current},{ip}") + ? string.Join(",", Global.Settings.TUNTAP.DNS) : "1.1.1.1"; } else @@ -284,7 +284,7 @@ namespace Netch.Forms if (UseCustomDNSCheckBox.Checked) { - TUNTAPDNSTextBox.Text = Global.Settings.TUNTAP.DNS.Aggregate((current, ip) => $"{current},{ip}"); + TUNTAPDNSTextBox.Text = string.Join(",", Global.Settings.TUNTAP.DNS); } return; diff --git a/Netch/Models/Mode.cs b/Netch/Models/Mode.cs index 60e3dec7..d00f2892 100644 --- a/Netch/Models/Mode.cs +++ b/Netch/Models/Mode.cs @@ -131,30 +131,30 @@ namespace Netch.Models /// 模式文件字符串 public string ToFileString() { - string fileString; + StringBuilder fileString = new StringBuilder(); switch (Type) { case 0: // 进程模式 - fileString = $"# {Remark}"; + fileString.Append($"# {Remark}"); break; case 1: // TUN/TAP 规则内 IP CIDR,无 Bypass China 设置 - fileString = $"# {Remark}, {Type}, 0"; + fileString.Append($"# {Remark}, {Type}, 0"); break; default: - fileString = $"# {Remark}, {Type}, {(BypassChina ? 1 : 0)}"; + fileString.Append($"# {Remark}, {Type}, {(BypassChina ? 1 : 0)}"); break; } - fileString += Global.EOF; + if (Rule.Any()) + { + fileString.Append(Global.EOF); + fileString.Append(string.Join(Global.EOF, Rule)); + } - fileString = Rule.Aggregate(fileString, (current, item) => $"{current}{item}{Global.EOF}"); - // 去除最后的行尾符 - fileString = fileString.Substring(0, fileString.Length - 2); - - return fileString; + return fileString.ToString(); } public string TypeToString()