[c#] C #에서 문자열의 마지막 문자를 삭제하는 방법은 무엇입니까?

다음과 같은 방법으로 요청 후 문자열을 작성합니다.

  var itemsToAdd = sl.SelProds.ToList();
  if (sl.SelProds.Count() != 0)
  {
      foreach (var item in itemsToAdd)
      {
        paramstr = paramstr + string.Format("productID={0}&", item.prodID.ToString());
      }
  }

결과를 얻은 후 paramstr마지막 문자를 삭제해야 &합니다.

C #을 사용하여 문자열의 마지막 문자를 삭제하는 방법은 무엇입니까?



답변

string.Join대신 다음 과 같이 빌드하십시오 .

var parameters = sl.SelProds.Select(x=>"productID="+x.prodID).ToArray();
paramstr = string.Join("&", parameters);

string.Join구분자 ( "&") 및 문자열 배열 ( )을 취하고 배열의 parameters각 요소 사이에 구분자를 삽입합니다.


답변

개인적으로 저는 Rob의 제안을 따르 겠지만 하나 이상의 특정 후행 문자를 제거하려면를 사용할 수 있습니다 TrimEnd. 예

paramstr = paramstr.TrimEnd('&');


답변

string source;
// source gets initialized
string dest;
if (source.Length > 0)
{
    dest = source.Substring(0, source.Length - 1);
}


답변

이 시도:

paramstr.Remove((paramstr.Length-1),1);


답변

처음에는 추가하지 않을 것입니다.

 var sb = new StringBuilder();

 bool first = true;
 foreach (var foo in items) {
    if (first)
        first = false;
    else
        sb.Append('&');

    // for example:
    var escapedValue = System.Web.HttpUtility.UrlEncode(foo);

    sb.Append(key).Append('=').Append(escapedValue);
 }

 var s = sb.ToString();


답변

string str="This is test string.";
str=str.Remove(str.Length-1);


답변

를 사용하는 것이 좋습니다 string.Join.

 class Product
 {
   public int ProductID { get; set; }
 }
 static void Main(string[] args)
 {
   List<Product> products = new List<Product>()
      {
         new Product { ProductID = 1 },
         new Product { ProductID = 2 },
         new Product { ProductID = 3 }
      };
   string theURL = string.Join("&", products.Select(p => string.Format("productID={0}", p.ProductID)));
   Console.WriteLine(theURL);
 }