데이터베이스에 연결된 목록에서 많은 정보를 검색하고 웹 사이트에 연결된 사람을 위해 일련의 그룹을 만들고 싶습니다.
나는 이것을 테스트하기 위해 사용하지만 이것은 동적이지 않기 때문에 정말 나쁘다.
string strgroupids = "6";
지금 이것을 사용하고 싶습니다. 그러나 반환 된 문자열은 다음과 같습니다1,2,3,4,5,
groupIds.ForEach((g) =>
{
strgroupids = strgroupids + g.ToString() + ",";
strgroupids.TrimEnd(',');
});
strgroupids.TrimEnd(new char[] { ',' });
,
이후 를 삭제하고 5
싶지만 확실히 작동하지 않습니다.
답변
strgroupids = strgroupids.Remove(strgroupids.Length - 1);
String.Remove (Int32) :
이 문자열에서 지정된 위치에서 시작하여 마지막 위치까지 계속되는 모든 문자를 삭제합니다.
답변
이런 식으로 하는건 어때?
strgroupids = string.Join( ",", groupIds );
많은 청소기.
그것은 내부의 모든 요소를 추가합니다 groupIds
A의 ','
각 사이, 그러나 그것은을 넣어하지 ','
말.
답변
C #의 문자열은 변경할 수 없습니다. 코드에서 당신이 할 때 strgroupids.TrimEnd(',');
또는 문자열은 수정되지 않습니다 .strgroupids.TrimEnd(new char[] { ',' });
strgroupids
strgroupids = strgroupids.TrimEnd(',');
대신에 뭔가를해야 합니다.
문자열은 변경할 수 없습니다. 구문을 사용하면 마치 마치 마치 개체를 만든 것처럼 보이더라도 문자열 개체의 내용을 변경할 수 없습니다. 예를 들어,이 코드를 작성할 때 컴파일러는 실제로 새 문자 시퀀스를 보유 할 새 문자열 객체를 작성하고 해당 새 객체는 b에 할당됩니다. 그런 다음 문자열 “h”는 가비지 수집에 적합합니다.
답변
확장 방법을 추가하십시오.
public static string RemoveLast(this string text, string character)
{
if(text.Length < 1) return text;
return text.Remove(text.ToString().LastIndexOf(character), character.Length);
}
그런 다음 사용하십시오 :
yourString.RemoveLast(",");
답변
후행 쉼표를 제거합니다.
while (strgroupids.EndsWith(","))
strgroupids = strgroupids.Substring(0, strgroupids.Length - 1);
이것은 거꾸로입니다. 처음에 쉼표를 추가하는 코드를 작성했습니다. 가 string.Join(",",g)
이라고 가정하고 대신 사용해야 g
합니다 string[]
. 그것보다 더 나은 이름을 줘 g
!
답변
각 항목에 쉼표를 추가하는 대신 String.Join을 사용할 수 있습니다.
var strgroupids = String.Join(",", groupIds);
그러면 배열의 각 요소 사이 에 구분 기호 (이 경우 “” “)가 추가 됩니다.
답변
string strgroupids = string.Empty;
groupIds.ForEach(g =>
{
strgroupids = strgroupids + g.ToString() + ",";
});
strgroupids = strgroupids.Substring(0, strgroupids.Length - 1);
ForEach
여기 에서의 사용 은 일반적으로 “잘못된”것으로 간주됩니다 (예 : http://blogs.msdn.com/b/ericlippert/archive/2009/05/18/foreach-vs-foreach.aspx 참조 )
LINQ 사용 :
string strgroupids = groupIds.Aggregate(string.Empty, (p, q) => p + q + ',');
strgroupids = strgroupids.Substring(0, str1.Length - 1);
서브 스트링이없는 경우 :
string strgroupids = groupIds.Aggregate(string.Empty, (p, q) => (p != string.Empty ? p + "," + q : q.ToString()));