LINQ를 사용하여 길이가 같은 문자열의 첫 번째와 두 번째 문자 쌍을 얻고 싶습니다.

루미

2 개의 문자열 목록이 있습니다.

List<string> A = new List<string> { "1QWERTY", "ASDF4B2J", "C0QW", "8D" };
List<string> B = new List<string> { "GJ65SJ2", "KO21L94B", "ABF287KF2", "GPK25" };

LINQ를 사용하여 길이가 같은 문자열의 첫 번째와 두 번째 문자 쌍을 얻고 싶습니다.

좋아요 1Q: GJ또는 AS: KO.

그래서이 코드를 작성했습니다.

var res = A.Join(
  B,
  a => a.Length,
  b => b.Length,
  (a, b) => new { str = a[0] + a[1] + ": " + b[0] + b[1] }
);

foreach (var e in res)
{
    Console.WriteLine(e.str);
}

그러나 대신 1Q또는 AS사용 a[0]하고 a[1]몇 가지 숫자를 얻었습니다.
따라서이 요청의 결과는 다음과 같습니다.

130: GJ
148: KO

그러나 내가 사용하는 경우 a[0]또는 a[1]:

var res = A.Join(B, a => a.Length, b => b.Length, (a, b) => new { str = a[0] + ": " + b[0] + b[1] });

다음과 같은 올바른 기호가 있습니다.

1: GJ
A: KO

그렇다면 왜 그렇게 작동하며 올바르게 작동하도록 코드를 어떻게 변경해야합니까?

canton7

이것은 linq와 관련이 없습니다.

a[0]char아니라 string. 아마 혼동을 위해 정의 된 더하기 연산자가 없습니다 char: 두 개의 추가 할 수 없습니다 chars을 얻기 위해 서로를 string.

그러나 a char는 암시 적으로 정수 형식으로 변환 할 수 있으며에 대한 더하기 연산자가 ints있습니다. 그래서 만약 그렇게한다면 그것은 정수인으로 'A' + 'B'변환됩니다 .65 + 66131

그런 다음 이것을 string. 문자열이 아닌 것을 string호출 ToString()한 다음이를 문자열과 연결하여 작동 하는 덧셈 연산자와 a 사이에 정의 된 덧셈 연산자가 있습니다 . 그래서 131 + ": "와 동일한 131.ToString() + ": "문자열 인 "131: ".

우리가 추가 왔을 때 b[0]b[1], 우리는 먼저 추가 수행하여이 작업을 수행 "131: " + b[0]. 이것은 위와 같은 문자열 추가에 대한 동일한 규칙을 따르므로 "131: " + b[0].ToString(), 예를 들어 "131: " + 'C'.ToString()"131 : C"인으로 바뀝니다. 그런 다음 b[1].

원하는 작업을 수행하는 방법에는 여러 가지가 있습니다 . a[0].ToString() + a[1] + ": " + ...먼저 char이를 string. 또는 "" + a[0] + ...동일한 것을 달성하기 위해 할 수 있습니다 . 그러나 가장 쉬운 방법은 문자열 연결을 전혀 사용하지 않고 대신 $"{a[0]}{a[1]}: {b[0]}{b[1]}".

또 다른 방법은 개별 문자를 선택하지 않고 a.Substring(0, 2)처음 두 문자를 문자열로 꺼내는 것입니다. 그런 다음 a.Substring(0, 2) + ": " + b.Substring(0, 2), 또는 $ "{a.Substring (0, 2)} : {b.Substring (0, 2)}"`를 작성할 수 있습니다.

0 또는 1 자 길이의 문자열이있는 경우이 중 어느 것도 안전하지 않습니다!

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

첫 번째 줄의 필드가 'P'와 같고 두 번째 줄의 필드가 'W'이면 awk를 사용하여 줄을 결합합니다.

분류에서Dev

c #-텍스트 상자 안의 문자열을 콜론으로 분할하고 첫 번째 문자열과 두 번째 문자열을 가져옵니다.

분류에서Dev

쌍으로 구성된 벡터에서 첫 번째 값이 X와 같고 두 번째 값을 반환하는 쌍을 찾거나 Y를 반환합니다.

분류에서Dev

두 개의 문자 배열로 행맨의 간단한 게임. 그들은 여섯 번 시도합니다. 첫 번째 사용자가 단어를 입력하면 두 번째 사용자가 _ 공백을 통해 단어를 추측합니다.

분류에서Dev

문자열 연결에 동일한 방법을 사용했지만 첫 번째 오류와 두 번째 오류가 결과를 보여줍니다.

분류에서Dev

파이썬에서 정규식을 사용하여 두 특정 문자 사이의 첫 번째 정수를 얻는 방법은 무엇입니까?

분류에서Dev

다음과 같은 문자열에서 regexp 함수를 사용하여 두 번째 점 (.) 앞에 텍스트를 추출하고 싶습니다.

분류에서Dev

첫 번째 문자열 뒤에 string1을 삽입하고 두 번째 문자열 뒤에 string2를 삽입하는 방법은 무엇입니까?

분류에서Dev

첫 번째 문자가 'a'인 경우와 같은 예외와 함께 처음 두 문자없이 문자열을 반환 한 다음 반환

분류에서Dev

첫 번째 문자열에서 x 문자를 반복하여 원하는 길이와 일치하는 모든 문자열을 가져옵니다.

분류에서Dev

재귀를 사용하여 첫 번째 문자열에서 두 번째 문자열의 첫 번째 발생 인덱스 가져 오기

분류에서Dev

재귀를 사용하여 첫 번째 문자열에서 두 번째 문자열의 첫 번째 발생 인덱스 가져 오기

분류에서Dev

두 번째 배열의 하위 문자열에 따라 첫 번째 배열의 해시에 키 값 쌍을 추가합니다.

분류에서Dev

두 문자열을 취하고 첫 번째 문자열이 두 번째 문자열 내에서 하위 문자열로 발생하는지 여부를 나타내는 부울을 반환하는 정적 메서드를 작성합니다.

분류에서Dev

두 번째 문자열 PHP에서 첫 번째 문자열의 문자를 확인할 때 출력이 일치하지 않습니다.

분류에서Dev

문자열을 검색하고 awk를 사용하여 첫 번째 행의 첫 번째 열을 인쇄합니다.

분류에서Dev

첫 번째 발생, 두 번째 발생 등을 표시하는 추가 열을 표시하고 싶습니다.

분류에서Dev

첫 번째 문자열을 캡처하지 않고 두 문자열 사이의 JavaScript Regexp

분류에서Dev

일치하거나 첫 번째 숫자가 두 번째 숫자보다 작은 두 숫자로 문자열을 grep하는 방법은 무엇입니까?

분류에서Dev

문자의 첫 번째 발생과 다른 문자의 첫 번째 발생 사이에서 문자열을 추출하는 방법은 무엇입니까?

분류에서Dev

웹 사이트의 첫 번째 <p> 태그와 </ p> 태그 사이에 문장을 넣고 싶습니다.

분류에서Dev

첫 번째 열의 특정 문자열과 일치하는 외부 파일을 읽고 PHP에서 두 번째 열의 각 문자열을 반환합니다.

분류에서Dev

라인의 특정 범위를 선택하고 각 고유 두 번째 문자를 사용하여 첫 번째 문자의 특정 발생을 계산하는 방법은 무엇입니까?

분류에서Dev

문자열을 '첫 번째'와 '두 번째'로 나누기

분류에서Dev

문자열의 길이가 두 단어 이상인지 확인하고 첫 번째 단어 만 유지하고 그렇지 않으면 전체 문자열을 SQL에 유지하는 방법은 무엇입니까?

분류에서Dev

R을 사용하여 첫 번째 열이 두 번째 열보다 크거나 같은 횟수를 계산합니다.

분류에서Dev

두 개의 파이썬 arange를 연결하고 싶지만 첫 번째 arange 만 얻습니다.

분류에서Dev

정규식 VB NET을 사용하여 문자열의 첫 번째와 마지막 문자 및 하위 문자열을 일치시키고 교체합니다.

분류에서Dev

Ruby에서 두 문자열 사이의 첫 번째 다른 문자 찾기

Related 관련 기사

  1. 1

    첫 번째 줄의 필드가 'P'와 같고 두 번째 줄의 필드가 'W'이면 awk를 사용하여 줄을 결합합니다.

  2. 2

    c #-텍스트 상자 안의 문자열을 콜론으로 분할하고 첫 번째 문자열과 두 번째 문자열을 가져옵니다.

  3. 3

    쌍으로 구성된 벡터에서 첫 번째 값이 X와 같고 두 번째 값을 반환하는 쌍을 찾거나 Y를 반환합니다.

  4. 4

    두 개의 문자 배열로 행맨의 간단한 게임. 그들은 여섯 번 시도합니다. 첫 번째 사용자가 단어를 입력하면 두 번째 사용자가 _ 공백을 통해 단어를 추측합니다.

  5. 5

    문자열 연결에 동일한 방법을 사용했지만 첫 번째 오류와 두 번째 오류가 결과를 보여줍니다.

  6. 6

    파이썬에서 정규식을 사용하여 두 특정 문자 사이의 첫 번째 정수를 얻는 방법은 무엇입니까?

  7. 7

    다음과 같은 문자열에서 regexp 함수를 사용하여 두 번째 점 (.) 앞에 텍스트를 추출하고 싶습니다.

  8. 8

    첫 번째 문자열 뒤에 string1을 삽입하고 두 번째 문자열 뒤에 string2를 삽입하는 방법은 무엇입니까?

  9. 9

    첫 번째 문자가 'a'인 경우와 같은 예외와 함께 처음 두 문자없이 문자열을 반환 한 다음 반환

  10. 10

    첫 번째 문자열에서 x 문자를 반복하여 원하는 길이와 일치하는 모든 문자열을 가져옵니다.

  11. 11

    재귀를 사용하여 첫 번째 문자열에서 두 번째 문자열의 첫 번째 발생 인덱스 가져 오기

  12. 12

    재귀를 사용하여 첫 번째 문자열에서 두 번째 문자열의 첫 번째 발생 인덱스 가져 오기

  13. 13

    두 번째 배열의 하위 문자열에 따라 첫 번째 배열의 해시에 키 값 쌍을 추가합니다.

  14. 14

    두 문자열을 취하고 첫 번째 문자열이 두 번째 문자열 내에서 하위 문자열로 발생하는지 여부를 나타내는 부울을 반환하는 정적 메서드를 작성합니다.

  15. 15

    두 번째 문자열 PHP에서 첫 번째 문자열의 문자를 확인할 때 출력이 일치하지 않습니다.

  16. 16

    문자열을 검색하고 awk를 사용하여 첫 번째 행의 첫 번째 열을 인쇄합니다.

  17. 17

    첫 번째 발생, 두 번째 발생 등을 표시하는 추가 열을 표시하고 싶습니다.

  18. 18

    첫 번째 문자열을 캡처하지 않고 두 문자열 사이의 JavaScript Regexp

  19. 19

    일치하거나 첫 번째 숫자가 두 번째 숫자보다 작은 두 숫자로 문자열을 grep하는 방법은 무엇입니까?

  20. 20

    문자의 첫 번째 발생과 다른 문자의 첫 번째 발생 사이에서 문자열을 추출하는 방법은 무엇입니까?

  21. 21

    웹 사이트의 첫 번째 <p> 태그와 </ p> 태그 사이에 문장을 넣고 싶습니다.

  22. 22

    첫 번째 열의 특정 문자열과 일치하는 외부 파일을 읽고 PHP에서 두 번째 열의 각 문자열을 반환합니다.

  23. 23

    라인의 특정 범위를 선택하고 각 고유 두 번째 문자를 사용하여 첫 번째 문자의 특정 발생을 계산하는 방법은 무엇입니까?

  24. 24

    문자열을 '첫 번째'와 '두 번째'로 나누기

  25. 25

    문자열의 길이가 두 단어 이상인지 확인하고 첫 번째 단어 만 유지하고 그렇지 않으면 전체 문자열을 SQL에 유지하는 방법은 무엇입니까?

  26. 26

    R을 사용하여 첫 번째 열이 두 번째 열보다 크거나 같은 횟수를 계산합니다.

  27. 27

    두 개의 파이썬 arange를 연결하고 싶지만 첫 번째 arange 만 얻습니다.

  28. 28

    정규식 VB NET을 사용하여 문자열의 첫 번째와 마지막 문자 및 하위 문자열을 일치시키고 교체합니다.

  29. 29

    Ruby에서 두 문자열 사이의 첫 번째 다른 문자 찾기

뜨겁다태그

보관