如何使用修剪功能修剪列表内部

问题描述

我正在尝试修剪一个名为 Input(对象形式 .json 文件)的项目,它位于 foreach 循环内。

我现在的代码是:

List<string> dhurl = new List<string>();

foreach (JObject item in jArray)
{
    dhurl.Add("https://" + (string)item.SelectToken("Input");
}

输入添加了“sm-tiktoktrends.com”,我想要它只添加“tiktoktrends.com”,如何使用trim去掉“sm-”?

*为了澄清所有 Input 对象都需要 sm-removed

解决方法

如果所有值都以“sm-”开头,问题尚不清楚。如果是这样,并且您愿意使用 LINQ:

List<string> dhurl = jArray.Select(item => "https://" + ((string)item.SelectToken("Input")).Substring(3)).ToList();

否则,我可能会这样做:

List<string> dhurl = jArray
    .Select(item => (string)item.SelectToken("Input"))
    .Select(item => "https://" + (item.StartsWith("sm-") ? item.Substring(3) : item))
    .LoList();

基于以下评论的新示例:

List<string> dhurl = jArray
    .Select(item =>
        string.Format(
            "https://{0}/?sig={1}",((string)item.SelectToken("Input")).Substring(3),(string)item.SelectToken("Signature")
        ))
    .LoList();
,

您可能应该将 Substring(...)StartsWith(...) 一起使用,而不是 Trim(...)

string input = item.SelectToken("Input").ToString();
if (input.StartsWith("sm-"))
{
    input = input.Substring(3);
}
dhurl.Add("https://" + input);
,

dhurl.Add($"https://{item.SelectToken("Input").Replace("sm-","")}") ?