배열의 특정 셀에 주어진 문자열의 일부가 포함되어 있는지 확인하려고합니다. 배열은 .Contains를 사용하지 않기 때문에 나는 .Any를 사용하고 있지만 어떻게 이해할 수 있습니다. 모든 작업을 제대로하기에는 너무 흐립니다. 그래서 난 등 "돼지 고기", "농장"와 같은 문자열에 공급하고 있습니다 배열에서 System.Linq의 .Any를 사용하여 문자열 찾기
public void ProcessCSV (string typeName) {
for (int y = 0; y < CSVReader.grid.GetUpperBound(1); y++) {
if (CSVReader.grid[0,y] != null) {
if ((CSVReader.grid[0,y].Any(s => typeName.Contains(s)))) {
// (add it to a new list)
은 때때로, 완벽 예를 작동하는 것 같다 typeName이 "Farm"인 경우 [0, y]에 해당 문자열을 포함하는 배열의 행만 가져옵니다. 그러나 다른 시간에, 내가 다른 문자열이나 임의의 횡설수설을 사용한다면, 문자열을 가진 모든 단일 행을 반환합니다.
내가 전화를 걸면 실제로 무슨 일이 벌어 지나요? 이런 식 으로요? 사용할 수있는 대체 방법이 있습니까?
어, 예! 그건 분명 했어야했다;) 그러나 그런 식으로 바꾸면 나에게 다시 오류가 발생한다. 포함한다 - 아마도 내가 사용할 수 없기 때문이다. 배열을 포함하고 배열은 배열의 일부인가? 이 주변에 좋은 방법이 있습니까? –
내가 얻는 두 가지 오류 중 하나는 다음과 같습니다. "유형'char '에 멤버'Contains '와 최상의 확장 메서드 오버로드가 없습니다. System.Linq.Enumerable.Contains (this System.Collections.Generic.IEnumerable , string) '잘못된 인수가 있습니다. " –
@ChrisMorrison 그러면 오류를 더 자세히 읽어야합니다. 'char' (한 문자)에'Contains'를 호출하려고합니다. 당신은 분명히'CSVReader.grid [0, y]'가 문자열을 반환 할 것으로 기대하고 있습니다. 그러나 이것은 항상 그렇습니다. 단일'char' 또는 문자 배열을 문자열로 바꾸려면 ['String' 생성자] (http://msdn.microsoft.com/en-us/library/ttyxaek9.aspx)를 사용하십시오. – Virtlink