홈>
와이즈 비즈 . 매개 변수 및 ParametersDetails 클래스는-
List<ParametersDetails>
ParameterDetails 목록에 중복 이름을 가진 매개 변수가 포함되지 않아야합니다. 중복 매개 변수 이름이 발견되면 사전에서 이름을 Parametername + parameterDetails name으로 바꾸고 싶습니다. 항목을 순회하여 항목을 수정 한 다음 수정할 수는 있지만 더 적은 코드로 수행하고 싶습니다. 문제는 list ..에서 중복을 찾고 찾는 방법입니다. Linq에서 가능합니까?
지금하고있는 일-1 개의 목록에있는 모든 매개 변수를 가져 와서 중복 된 부분을 발견했습니다
public class ParameterDetails
{
public string Name { get; set; }
public List<Parameter> Parameters{get;set;}
}
public class Parameter
{
public string Name { get; set; }
public string Type { get; set; }
public string Value { get; set; }
public string AccountName { get; set; }
}
다음으로, 목록에서 항목을 선택합니다
var hasDupes = dflist.GroupBy(x => new { x.Name })
.Where(x => x.Skip(1).Any()).ToArray();
이제 ParameterDetials List를 반복하여 항목을 수정하고 싶지 않습니다. 더 쉬운 방법이 있습니까?
전- ParameterDetails에 2 개의 항목이 있습니다-
parameterdetails.Select(x => x.Parameters.Where(p => p.Name == dupeList.Key.ToString())).ToList();
param1을 중복 이름으로 사용하는 경우 고유 한 이름으로 "param1 + test2"로 바꾸려고합니다.
ParameterDetails:
[
{
name: "test1",
Parameters:[
{
"Name":"param1",
"Type":"paramtype1",
"Value":"value1",
"AccountName":"accname1"
},
{
"Name":"param2",
"Type":"paramtype2",
"Value":"value2",
"AccountName":"accname2"
}]
},
{
name: "test2",
Parameters:[
{
"Name":"param1",
"Type":"paramtype11",
"Value":"value11",
"AccountName":"accname11"
},
{
"Name":"param2",
"Type":"paramtype22",
"Value":"value22",
"AccountName":"accname22"
}]
}]
-
답변 # 1
관련 자료
- pandas - Python의 한 열에서 중복 문자열 요소 교체 및 제거
- 자바 스크립트 문자열은 한 번에 하나씩 교체하고 배열에 추가합니다
- r - 문자열 3의 요소 교체 - 패턴 뒤 10 자리
- python - 문자열에서 알려지지 않은 특정 단어 교체
- 여러 줄 문자열의 일부를 sed로 바꾸는 방법
- javascript - 문자열에서 여러 "\ n"을 일치시키고 단일 "\ n"으로 바꾸는 방법
- python - Pandas 데이터 프레임에서 특정 문자열을 포함하지 않는 모든 값을 바꿉니다
- 자바 스크립트에서 문자열의 선행 0을 최대 3 개로 바꿉니다
- python - 문자열이 특정 값으로 끝나는 경우 값을 바꿉니다
- bash - Linux에서 sed를 사용하여 문자열을 여러 세미콜론 및 특수 문자로 바꾸는 방법
- c# - 문자열 내부의 텍스트 교체
- c# - 문자열의 숫자를 숫자 + "f"로 대체
- python - 이전 문자열 교체
- python - 특정 조건을 충족하는 경우 문자열의 문자 교체
- java - "ABCDEFG"라는 문자열이 있다고 가정합니다 이제이 문자열의 짝수 값을 ASCII 값으로 바꾸고 싶습니다 어떻게해야합니까?
- mysql - MariaDB에서 빈 문자열을 NULL 값으로 바꾸는 방법이 있습니까?
- bash - 문자열 패턴의 모든 발생을 문자열이 발견 된 순서에 따라 문자열과 일치하는 숫자로 바꾸는 방법
- javascript - nodejs에서 작동하지 않는 여러 문자열 바꾸기 기능
- javascript - 문자열에서 [] 안의 텍스트를 바꾸는 방법은 무엇입니까?
- Java 문자열에서 대소 문자를 구분하지 않는 대체를 수행하려면 어떻게해야합니까?
관련 질문
- 주석이없는 목록에서 개체를 찾기위한 C # Linq 쿼리
- c# - LINQ Where의 매개 변수가 null이되었습니다 왜 일어 났습니까?
- c# - 유형 및 날짜별로 4 개의 개체 만 가져 오기 LINQ
- c# - 홀수 짝수 인덱스 문자열 정렬
- c# - 단일 요소에 대한 주문 수집
- c# - linq를 사용하여 쉼표로 구분 된 개체의 변수를 인쇄하는 방법은 무엇입니까?
- c# - LINQ를 사용하여 목록 만들기
- c# - Linq Query 다중 테이블은 다양한 테이블 이름의 배열과 조인
- c# - 병렬 루프에서 올바르게 삽입하는 방법
- c# - GroubBy ()의 결과를 List >로 가져옵니다
LINQ
를 사용할 수있는 목록에서 중복 된 항목을 찾습니다. , 이것은 그것을 사용하는 코드입니다 :dflist
의 모든 중복 항목을 반환합니다. . 고유 한 속성 값을 가진 모든 객체를 선택하려면 다음 코드 줄을 사용하십시오.그러면
Name
개체를 변경할 수 있습니다 이 코드를 사용하여 복제 된 객체에 대한 속성 :중복없이 목록에서 모든 항목을 가져 오려면
Dinstinct()
를 적용하면됩니다.dflist
에 방법 이 메소드는IEnumerable<T>
를 리턴합니다. 결과 :그리고
List<T>
를 반환하려면 대신IEnumerable<T>
ToList()
를 사용해야합니다 다음과 같은 방법 :이 페이지에서 더 자세한 정보를 얻을 수 있습니다 :
c #-LINQ를 사용하여 목록에서 중복 항목을 얻는 방법
Enumerable.DistinctMethod (IEnumerable)
C #-LINQ를 사용하여 컬렉션의 모든 개체 업데이트