2015-01-14 4 views
0

글쎄요, 꽤 기초적인 것으로 난처한 편입니다. 나는 쉼표로 구분 된 값들을 가진 문자열을 가지고있다. 기본적으로는 다음과 같이 뭔가 : 3 개 값이 일치하지 않기 때문에 모든 값이 문자열 내에서 동일한 지 확인하십시오.

public string shapes = circle, circle, square;

는 궁극적으로이 예는 BOOL에 false 값을 반환합니다.

하나의 문자열에서 값을 비교하는 가장 쉬운 방법을 찾고 있습니다. 지금까지 2 개 이상의 문자열을 비교하는 방법을 보았습니다. 목록이나 배열을 채우는 데 의존하지 않고도이 작업을 수행 할 수 있기를 기대합니다.

+0

당신은 몇 가지 코드를 게시해야한다. 너 뭐 해봤 니? –

+1

귀하의 질문을 검토하고 성취하고자하는 것에 대해 더 명확히하십시오. 정확히 "bool에서 거짓 값을 돌려주는"것은 무엇입니까? 한 문자열에있는 값을 분리해야하는 경우 String.Split [link] (http://msdn.microsoft.com/en-us/library/system.string.split (v = vs.110)) .aspx) –

답변

0

쉼표를 구분 기호로 사용하여 Split 함수를 사용해야합니다.

Trim 지금 당신은 문자열에서 값의 인구 컬렉션이에

그런 다음이 선행 또는 (귀하의 예에서 알 수 있듯이) 공백을 미행하는 것을 가정, 당신은해야합니다.

그런 다음 Linq을 사용하여 Distinct을 수행하고 길이를 확인하십시오. 길이가 변경된 경우 중복이 있습니다.

이것은 복제 된 내용을 알고 싶지 않다고 가정합니다.

1
static bool ShapeCheck(string shapeString) 
{ 
    var shapes = shapeString.Split(new[] { ',' , ' ' }, StringSplitOptions.RemoveEmptyEntries); 
    return shapes.Distinct().Count() == 1; 
} 

당신은 이런 식으로 부를 것이다 :

Console.WriteLine("circle, circle, square = {0}", ShapeCheck("circle, circle, square")); 
Console.WriteLine("circle, circle, circle = {0}", ShapeCheck("circle, circle, circle")); 

첫 번째는 거짓, 두 번째, 진정한 것입니다.

0

string[]에서 Distinct() 전화를 걸면됩니다. 모든 멋진, 표준 답변을 이미 사용하고 있기 때문에

static void Main(string[] args) 
    { 
     var str = "foo,bar,test"; 
     Console.WriteLine(DoValuesMatch(str)); 
     Console.ReadLine(); 
    } 

    private static bool DoValuesMatch(string str) 
    { 
     var strArr = str.Split(new[] { ',' }); 
     return strArr.Distinct().Count() == 1; 
    } 
+0

모두에게 감사드립니다! 이것들은 모두 이것을하는 훌륭한 방법입니다. 나는 요한의 대답이 내가 찾고있는 것이라고 생각하지만, 다른 방법이 있다는 것을 아는 것이 좋다. – SparkamusPrime

0

... 오래된 학교 방법 :

public string shapes = "circle, circle, square"; 

    private void button1_Click(object sender, EventArgs e) 
    { 
     shapes = shapes + ","; 
     int comma = shapes.IndexOf(","); 
     string value = shapes.Substring(0, comma).Trim(); 
     shapes = shapes.Replace(value, "").Trim(", ".ToCharArray()); 
     bool AllTheSame = (shapes.Length == 0); 
     if (AllTheSame) 
      Console.WriteLine("They are all: " + value); 
     else 
      Console.WriteLine("They are NOT all the same."); 
    } 
관련 문제