convert nested for loop to linq with condition
How to convert below c# nested for loop to linq...?
list = objBLForms.GetForms(Ids);
for (int i = 0; i < list.Count; i++)
for (int j = 0; j < list.Count; j++)
if (list[i].StateId == list[j].StateId &&
list[i].PayerId == list[j].PayerId && i != j)
if (string.IsNullOrEmpty(list[i].Tax))
list.Remove(list[i]);
else
list.Remove(list[j]);
I want to Remove duplicate payers with same state..And if any state tax is present, i wanted to remove the other duplicate one i,e; the duplicate one which is having no state tax...
I have achived it by using the nested for loop as shown above.
is there any way to do it in linq..I dont't know anything about linq.
Am very new to linq,Thanks in advance
c# .net linq
add a comment |
How to convert below c# nested for loop to linq...?
list = objBLForms.GetForms(Ids);
for (int i = 0; i < list.Count; i++)
for (int j = 0; j < list.Count; j++)
if (list[i].StateId == list[j].StateId &&
list[i].PayerId == list[j].PayerId && i != j)
if (string.IsNullOrEmpty(list[i].Tax))
list.Remove(list[i]);
else
list.Remove(list[j]);
I want to Remove duplicate payers with same state..And if any state tax is present, i wanted to remove the other duplicate one i,e; the duplicate one which is having no state tax...
I have achived it by using the nested for loop as shown above.
is there any way to do it in linq..I dont't know anything about linq.
Am very new to linq,Thanks in advance
c# .net linq
Note that&& i != j
isn't needed: just startj
at 1 rather than 0.
– John
Nov 13 '18 at 5:33
yes,@john..that's a good idea!
– Kishore
Nov 13 '18 at 5:37
Both for loops start at 0 and both end atCount
. You are bound to compare an object to its own self
– Ahmad
Nov 13 '18 at 5:39
yes @ahmmed.. i wanted to remove duplicates, so i need to compare to its own self only...
– Kishore
Nov 13 '18 at 5:41
add a comment |
How to convert below c# nested for loop to linq...?
list = objBLForms.GetForms(Ids);
for (int i = 0; i < list.Count; i++)
for (int j = 0; j < list.Count; j++)
if (list[i].StateId == list[j].StateId &&
list[i].PayerId == list[j].PayerId && i != j)
if (string.IsNullOrEmpty(list[i].Tax))
list.Remove(list[i]);
else
list.Remove(list[j]);
I want to Remove duplicate payers with same state..And if any state tax is present, i wanted to remove the other duplicate one i,e; the duplicate one which is having no state tax...
I have achived it by using the nested for loop as shown above.
is there any way to do it in linq..I dont't know anything about linq.
Am very new to linq,Thanks in advance
c# .net linq
How to convert below c# nested for loop to linq...?
list = objBLForms.GetForms(Ids);
for (int i = 0; i < list.Count; i++)
for (int j = 0; j < list.Count; j++)
if (list[i].StateId == list[j].StateId &&
list[i].PayerId == list[j].PayerId && i != j)
if (string.IsNullOrEmpty(list[i].Tax))
list.Remove(list[i]);
else
list.Remove(list[j]);
I want to Remove duplicate payers with same state..And if any state tax is present, i wanted to remove the other duplicate one i,e; the duplicate one which is having no state tax...
I have achived it by using the nested for loop as shown above.
is there any way to do it in linq..I dont't know anything about linq.
Am very new to linq,Thanks in advance
c# .net linq
c# .net linq
edited Nov 13 '18 at 5:27
user3559349
asked Nov 13 '18 at 5:22
KishoreKishore
65
65
Note that&& i != j
isn't needed: just startj
at 1 rather than 0.
– John
Nov 13 '18 at 5:33
yes,@john..that's a good idea!
– Kishore
Nov 13 '18 at 5:37
Both for loops start at 0 and both end atCount
. You are bound to compare an object to its own self
– Ahmad
Nov 13 '18 at 5:39
yes @ahmmed.. i wanted to remove duplicates, so i need to compare to its own self only...
– Kishore
Nov 13 '18 at 5:41
add a comment |
Note that&& i != j
isn't needed: just startj
at 1 rather than 0.
– John
Nov 13 '18 at 5:33
yes,@john..that's a good idea!
– Kishore
Nov 13 '18 at 5:37
Both for loops start at 0 and both end atCount
. You are bound to compare an object to its own self
– Ahmad
Nov 13 '18 at 5:39
yes @ahmmed.. i wanted to remove duplicates, so i need to compare to its own self only...
– Kishore
Nov 13 '18 at 5:41
Note that
&& i != j
isn't needed: just start j
at 1 rather than 0.– John
Nov 13 '18 at 5:33
Note that
&& i != j
isn't needed: just start j
at 1 rather than 0.– John
Nov 13 '18 at 5:33
yes,@john..that's a good idea!
– Kishore
Nov 13 '18 at 5:37
yes,@john..that's a good idea!
– Kishore
Nov 13 '18 at 5:37
Both for loops start at 0 and both end at
Count
. You are bound to compare an object to its own self– Ahmad
Nov 13 '18 at 5:39
Both for loops start at 0 and both end at
Count
. You are bound to compare an object to its own self– Ahmad
Nov 13 '18 at 5:39
yes @ahmmed.. i wanted to remove duplicates, so i need to compare to its own self only...
– Kishore
Nov 13 '18 at 5:41
yes @ahmmed.. i wanted to remove duplicates, so i need to compare to its own self only...
– Kishore
Nov 13 '18 at 5:41
add a comment |
2 Answers
2
active
oldest
votes
This seems about right to me:
list =
list
.OrderByDescending(x => x.Tax)
.GroupBy(x => new x.StateId, x.PayerId )
.SelectMany(x => x.Take(1))
.ToList();
Awesome....Working fine.
– Kishore
Nov 13 '18 at 9:18
add a comment |
The logic of your code is actually removing EVERYTHING that has string.IsNullOrEmpty(Tax)
, and only keeping first record that has value in Tax
. Then, how about this
list
.Where(l => !string.IsNullOrEmpty(l.Tax))
.GroupBy(l => new l.StateId, l.PayerId)
.Select(group => group.First())
.ToArray();
it removing every item where tax is empty...but only remove empty tax item when there exist an other duplicate item with tax, else keep that empty tax item in the list
– Kishore
Nov 13 '18 at 6:00
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53274311%2fconvert-nested-for-loop-to-linq-with-condition%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
This seems about right to me:
list =
list
.OrderByDescending(x => x.Tax)
.GroupBy(x => new x.StateId, x.PayerId )
.SelectMany(x => x.Take(1))
.ToList();
Awesome....Working fine.
– Kishore
Nov 13 '18 at 9:18
add a comment |
This seems about right to me:
list =
list
.OrderByDescending(x => x.Tax)
.GroupBy(x => new x.StateId, x.PayerId )
.SelectMany(x => x.Take(1))
.ToList();
Awesome....Working fine.
– Kishore
Nov 13 '18 at 9:18
add a comment |
This seems about right to me:
list =
list
.OrderByDescending(x => x.Tax)
.GroupBy(x => new x.StateId, x.PayerId )
.SelectMany(x => x.Take(1))
.ToList();
This seems about right to me:
list =
list
.OrderByDescending(x => x.Tax)
.GroupBy(x => new x.StateId, x.PayerId )
.SelectMany(x => x.Take(1))
.ToList();
answered Nov 13 '18 at 9:05
EnigmativityEnigmativity
77.9k966135
77.9k966135
Awesome....Working fine.
– Kishore
Nov 13 '18 at 9:18
add a comment |
Awesome....Working fine.
– Kishore
Nov 13 '18 at 9:18
Awesome....Working fine.
– Kishore
Nov 13 '18 at 9:18
Awesome....Working fine.
– Kishore
Nov 13 '18 at 9:18
add a comment |
The logic of your code is actually removing EVERYTHING that has string.IsNullOrEmpty(Tax)
, and only keeping first record that has value in Tax
. Then, how about this
list
.Where(l => !string.IsNullOrEmpty(l.Tax))
.GroupBy(l => new l.StateId, l.PayerId)
.Select(group => group.First())
.ToArray();
it removing every item where tax is empty...but only remove empty tax item when there exist an other duplicate item with tax, else keep that empty tax item in the list
– Kishore
Nov 13 '18 at 6:00
add a comment |
The logic of your code is actually removing EVERYTHING that has string.IsNullOrEmpty(Tax)
, and only keeping first record that has value in Tax
. Then, how about this
list
.Where(l => !string.IsNullOrEmpty(l.Tax))
.GroupBy(l => new l.StateId, l.PayerId)
.Select(group => group.First())
.ToArray();
it removing every item where tax is empty...but only remove empty tax item when there exist an other duplicate item with tax, else keep that empty tax item in the list
– Kishore
Nov 13 '18 at 6:00
add a comment |
The logic of your code is actually removing EVERYTHING that has string.IsNullOrEmpty(Tax)
, and only keeping first record that has value in Tax
. Then, how about this
list
.Where(l => !string.IsNullOrEmpty(l.Tax))
.GroupBy(l => new l.StateId, l.PayerId)
.Select(group => group.First())
.ToArray();
The logic of your code is actually removing EVERYTHING that has string.IsNullOrEmpty(Tax)
, and only keeping first record that has value in Tax
. Then, how about this
list
.Where(l => !string.IsNullOrEmpty(l.Tax))
.GroupBy(l => new l.StateId, l.PayerId)
.Select(group => group.First())
.ToArray();
edited Nov 13 '18 at 5:54
answered Nov 13 '18 at 5:32
LowkeyLowkey
522311
522311
it removing every item where tax is empty...but only remove empty tax item when there exist an other duplicate item with tax, else keep that empty tax item in the list
– Kishore
Nov 13 '18 at 6:00
add a comment |
it removing every item where tax is empty...but only remove empty tax item when there exist an other duplicate item with tax, else keep that empty tax item in the list
– Kishore
Nov 13 '18 at 6:00
it removing every item where tax is empty...but only remove empty tax item when there exist an other duplicate item with tax, else keep that empty tax item in the list
– Kishore
Nov 13 '18 at 6:00
it removing every item where tax is empty...but only remove empty tax item when there exist an other duplicate item with tax, else keep that empty tax item in the list
– Kishore
Nov 13 '18 at 6:00
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53274311%2fconvert-nested-for-loop-to-linq-with-condition%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Note that
&& i != j
isn't needed: just startj
at 1 rather than 0.– John
Nov 13 '18 at 5:33
yes,@john..that's a good idea!
– Kishore
Nov 13 '18 at 5:37
Both for loops start at 0 and both end at
Count
. You are bound to compare an object to its own self– Ahmad
Nov 13 '18 at 5:39
yes @ahmmed.. i wanted to remove duplicates, so i need to compare to its own self only...
– Kishore
Nov 13 '18 at 5:41