반응형
목록에서 고유한 값 목록을 가져옵니다.
C#에, 내가 라는 클래스가 있다고 가정해봐.Note
3개의 스트링 멤버 변수를 사용합니다.
public class Note
{
public string Title;
public string Author;
public string Text;
}
그리고 타입 리스트도 있어요Note
:
List<Note> Notes = new List<Note>();
작성자 열의 모든 개별 값 목록을 가져오는 가장 깨끗한 방법은 무엇입니까?
목록을 반복하여 중복되지 않는 모든 값을 다른 문자열 목록에 추가할 수 있지만, 이것은 더럽고 비효율적인 것 같습니다.한 줄에 이걸 할 수 있는 마법 같은 린크 건축이 있을 것 같은데, 난 아무것도 생각해내지 못했어.
Notes.Select(x => x.Author).Distinct();
그러면 시퀀스가 반환됩니다(IEnumerable<string>
)의Author
values - 고유값당 1개씩.
작성자별로 노트 클래스 구별
var DistinctItems = Notes.GroupBy(x => x.Author).Select(y => y.First());
foreach(var item in DistinctItems)
{
//Add to other List
}
Jon Sket은 morelinq라는 이름의 도서관을 썼습니다.DistinctBy()
교환입니다.실장에 대해서는, 여기를 참조해 주세요.당신의 코드는 다음과 같습니다.
IEnumerable<Note> distinctNotes = Notes.DistinctBy(note => note.Author);
업데이트: 질문을 다시 읽은 후 다른 작성자 세트를 찾고 있다면 Kirk가 정답을 알 수 있습니다.
샘플 추가(DistinentBy에 여러 필드 추가:
res = res.DistinctBy(i => i.Name).DistinctBy(i => i.ProductId).ToList();
public class KeyNote
{
public long KeyNoteId { get; set; }
public long CourseId { get; set; }
public string CourseName { get; set; }
public string Note { get; set; }
public DateTime CreatedDate { get; set; }
}
public List<KeyNote> KeyNotes { get; set; }
public List<RefCourse> GetCourses { get; set; }
List<RefCourse> courses = KeyNotes.Select(x => new RefCourse { CourseId = x.CourseId, Name = x.CourseName }).Distinct().ToList();
위의 논리를 사용함으로써, 우리는 독특한 것을 얻을 수 있다.Course
s.
@if (dataModal.Count > 0)
{
var DistinctItems = dataModal.GroupBy(x => x.Year).Select(y => y.First());
<div class="col-md-3">
<label class="fs-7 form-label text-muted">@Localizer["Year"]</label>
<InputSelect id="ddlYears" class="form-select" @bind-Value="filter.Year">
<option value="">@Localizer["Select"]</option>
@foreach (var year in DistinctItems)
{
<option value="@year.Year">
@year.Year
</option>
}
</InputSelect>
</div>
}
mcilist = (from mci in mcilist select mci).Distinct().ToList();
언급URL : https://stackoverflow.com/questions/10255121/get-a-list-of-distinct-values-in-list
반응형
'programing' 카테고리의 다른 글
Git 커밋의 출처를 특정하다 (0) | 2023.04.16 |
---|---|
Windows용 Objective-C (0) | 2023.04.11 |
cURL이 에러 「(23) Failed write body」를 반환하는 이유는 무엇입니까? (0) | 2023.04.11 |
배열 또는 두 날짜 사이의 모든 날짜 목록 만들기 (0) | 2023.04.11 |
EventTrigger를 사용하여 속성 설정 (0) | 2023.04.11 |