교체 할 수있는 객체 목록을 찾으려고합니다.linq delegate 함수에서 객체 검사
Class Letter{
int ID;
string Name;
string AdvCode;
int isDeleted;
}
Class Replacers{
int ID;
string MainAdvCode;
string ReplacesAdvCode;
}
예 데이터 :
대체물
0 455 400
1 955 400
2 955 455
LettersA
0 pack 455
1 addon 400
LettersB
0 big 955
1 pack 455
LettersC
0 addon 400
1 big 955
2 pack 455
LettersD
0 pack 455
1 none 019
solution:
LetterA 1 isDeleted
LeterB 1 isDeleted
LetterC 0 and 2 isDeleted
LetterD ---
되도록 문자가있는 경우 및 Advc 455의 ode와 400의 400의 코드를 가지고있는 다른 것은 400를 삭제 표시했다. 그리고 나서 다른 편지에 955가 있으면 455는 삭제로 표시되고 400 (이미 표시되어 있음)은 삭제로 표시됩니다.
문제는 현재 코드에서 400과 455 자체가 삭제 표시입니까?!?!?
Public class Main{
List<Letter> Letters;
List<Replacers> replaces;
//select the ones to replace the replacements aka the little guys
//check if the replacements replacer exists if yes mark deleted
var filterMethodReplacements = new Func<Letter, bool>(IsAdvInReplacements);//Working
var filterMethodReplacers = new Func<Letter, bool>(IsAdvInReplacers);//NOT WORKING????
var resReplacements=letters.Where(filterMethodReplacements);//working
foreach (Letter letter in resReplacements)
{
//select the Replacers aka the ones that contain the little guys
var resReplacers = letters.Where(filterMethodReplacers);
if (resReplacers != null)
letter.isDeleted = 1;
}
private bool IsAdvInReplacements(Letter letter)
{
return (from a in Replacables where a.ReplaceAdvCode == letter.AdvCode select a).Any();
}
private bool IsAdvInReplacers(Letter letter)
{
//??????????????????????????????
return (from a in Replacables where a.MainAdvCode == letter.AdvCode select a).Any();
}
}
당신은 정말 단순한 무언가 간단합니다 .... 왜 Func <>을 모두하고 있습니까? 그리고 뭐야? – Nix
이 문제를 해결할 수있는 가장 간단한 방법입니다. \t 난 그냥 가장 간단한 방법으로 문제를 해결하려면 가능한 모든 도움을 주시면 감사하겠습니다. 감사. – Philip
나는 "편지가 있고 455의 Advcode와 400의 부호가있는 경우에"편지의 몇몇보기 자료 세트를 준다 그런 선을 "이해하지 않는다. – Nix