How to edit anonymous dynamic list in c#
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
I am trying to create a dynamic list to act as an in memory working table in a single method. The dynamic list I create from linq to sql with an extra property (NewStatusId
) that I'd like to update later in the same method. This method is a one off so it doesn't make sense to create a specific object class for this.
How can I achieve this result? I'm open to any means that doesn't involve created a dedicated class object, unless of course, I have to.
var lstApprovedButNotStartedWorkOrderDetailsItem = _workOrderDetailRepository.
SearchFor(wod =>
wod.ItemId == intItemId
)
.OrderByDescending(wod => wod.WorkOrderHeader.OrderDetail.OrderHeader.RushOrderFlag)
.Select(wod => new {
wod.Id,
wod.WorkOrderHeaderId,
wod.ItemId,
OriginalStatusId = wod.WorkOrderHeader.StatusId,
NewStatusId = wod.WorkOrderHeader.StatusId,
NeededQty = wod.EstimatedQuantity - wod.ActualQuantity,
wod.Item.QtyAvailable
})
.ToList();
if (lstApprovedButNotStartedWorkOrderDetailsItem.Count <= 0) return ActionConfirmation<int>.CreateSuccessConfirmation("No open work orders for item", -1);
//loop through work order details in order, subtracting that line item's needs from the total available
for (int i = 0; i < lstApprovedButNotStartedWorkOrderDetailsItem.Count; i++)
{
var wod = lstApprovedButNotStartedWorkOrderDetailsItem[i];
//if wod
lstApprovedButNotStartedWorkOrderDetailsItem[i].NewStatusId = decTotalUnitsAvailable >= wod.NeededQty
? (int)WorkOrderStatus.Released
: (int)WorkOrderStatus.InventoryHold;
}
c# dynamic
add a comment |
I am trying to create a dynamic list to act as an in memory working table in a single method. The dynamic list I create from linq to sql with an extra property (NewStatusId
) that I'd like to update later in the same method. This method is a one off so it doesn't make sense to create a specific object class for this.
How can I achieve this result? I'm open to any means that doesn't involve created a dedicated class object, unless of course, I have to.
var lstApprovedButNotStartedWorkOrderDetailsItem = _workOrderDetailRepository.
SearchFor(wod =>
wod.ItemId == intItemId
)
.OrderByDescending(wod => wod.WorkOrderHeader.OrderDetail.OrderHeader.RushOrderFlag)
.Select(wod => new {
wod.Id,
wod.WorkOrderHeaderId,
wod.ItemId,
OriginalStatusId = wod.WorkOrderHeader.StatusId,
NewStatusId = wod.WorkOrderHeader.StatusId,
NeededQty = wod.EstimatedQuantity - wod.ActualQuantity,
wod.Item.QtyAvailable
})
.ToList();
if (lstApprovedButNotStartedWorkOrderDetailsItem.Count <= 0) return ActionConfirmation<int>.CreateSuccessConfirmation("No open work orders for item", -1);
//loop through work order details in order, subtracting that line item's needs from the total available
for (int i = 0; i < lstApprovedButNotStartedWorkOrderDetailsItem.Count; i++)
{
var wod = lstApprovedButNotStartedWorkOrderDetailsItem[i];
//if wod
lstApprovedButNotStartedWorkOrderDetailsItem[i].NewStatusId = decTotalUnitsAvailable >= wod.NeededQty
? (int)WorkOrderStatus.Released
: (int)WorkOrderStatus.InventoryHold;
}
c# dynamic
anonynous types are readonly i guess
– Ehsan Sajjad
Jan 4 at 16:08
add a comment |
I am trying to create a dynamic list to act as an in memory working table in a single method. The dynamic list I create from linq to sql with an extra property (NewStatusId
) that I'd like to update later in the same method. This method is a one off so it doesn't make sense to create a specific object class for this.
How can I achieve this result? I'm open to any means that doesn't involve created a dedicated class object, unless of course, I have to.
var lstApprovedButNotStartedWorkOrderDetailsItem = _workOrderDetailRepository.
SearchFor(wod =>
wod.ItemId == intItemId
)
.OrderByDescending(wod => wod.WorkOrderHeader.OrderDetail.OrderHeader.RushOrderFlag)
.Select(wod => new {
wod.Id,
wod.WorkOrderHeaderId,
wod.ItemId,
OriginalStatusId = wod.WorkOrderHeader.StatusId,
NewStatusId = wod.WorkOrderHeader.StatusId,
NeededQty = wod.EstimatedQuantity - wod.ActualQuantity,
wod.Item.QtyAvailable
})
.ToList();
if (lstApprovedButNotStartedWorkOrderDetailsItem.Count <= 0) return ActionConfirmation<int>.CreateSuccessConfirmation("No open work orders for item", -1);
//loop through work order details in order, subtracting that line item's needs from the total available
for (int i = 0; i < lstApprovedButNotStartedWorkOrderDetailsItem.Count; i++)
{
var wod = lstApprovedButNotStartedWorkOrderDetailsItem[i];
//if wod
lstApprovedButNotStartedWorkOrderDetailsItem[i].NewStatusId = decTotalUnitsAvailable >= wod.NeededQty
? (int)WorkOrderStatus.Released
: (int)WorkOrderStatus.InventoryHold;
}
c# dynamic
I am trying to create a dynamic list to act as an in memory working table in a single method. The dynamic list I create from linq to sql with an extra property (NewStatusId
) that I'd like to update later in the same method. This method is a one off so it doesn't make sense to create a specific object class for this.
How can I achieve this result? I'm open to any means that doesn't involve created a dedicated class object, unless of course, I have to.
var lstApprovedButNotStartedWorkOrderDetailsItem = _workOrderDetailRepository.
SearchFor(wod =>
wod.ItemId == intItemId
)
.OrderByDescending(wod => wod.WorkOrderHeader.OrderDetail.OrderHeader.RushOrderFlag)
.Select(wod => new {
wod.Id,
wod.WorkOrderHeaderId,
wod.ItemId,
OriginalStatusId = wod.WorkOrderHeader.StatusId,
NewStatusId = wod.WorkOrderHeader.StatusId,
NeededQty = wod.EstimatedQuantity - wod.ActualQuantity,
wod.Item.QtyAvailable
})
.ToList();
if (lstApprovedButNotStartedWorkOrderDetailsItem.Count <= 0) return ActionConfirmation<int>.CreateSuccessConfirmation("No open work orders for item", -1);
//loop through work order details in order, subtracting that line item's needs from the total available
for (int i = 0; i < lstApprovedButNotStartedWorkOrderDetailsItem.Count; i++)
{
var wod = lstApprovedButNotStartedWorkOrderDetailsItem[i];
//if wod
lstApprovedButNotStartedWorkOrderDetailsItem[i].NewStatusId = decTotalUnitsAvailable >= wod.NeededQty
? (int)WorkOrderStatus.Released
: (int)WorkOrderStatus.InventoryHold;
}
c# dynamic
c# dynamic
asked Jan 4 at 16:06
Chad RichardsonChad Richardson
2,51563373
2,51563373
anonynous types are readonly i guess
– Ehsan Sajjad
Jan 4 at 16:08
add a comment |
anonynous types are readonly i guess
– Ehsan Sajjad
Jan 4 at 16:08
anonynous types are readonly i guess
– Ehsan Sajjad
Jan 4 at 16:08
anonynous types are readonly i guess
– Ehsan Sajjad
Jan 4 at 16:08
add a comment |
2 Answers
2
active
oldest
votes
You can add to an existing list of anonymous types by adding another "anonymous type" with the same properties as the ones in the list:
using System;
using System.Linq;
public class Program
{
public static void Main()
{
Console.WriteLine("Hello World");
var list = (new { 1, 2, 3 })
.Select(i => new { Value = i })
.ToList();
list.Add(new { Value = 4 });
foreach (var i in list)
Console.WriteLine(i);
}
}
However, anonymous types are immutable. They are only projections of existing data and calculations. So you're better off just making a custom type for this ... it doesn't have to be very onerous, just make a new type that inherits from the "old" type that you're working with:
public class CustomWorkOrderDetailsItem : WorkOrderDetailsItem
{
public int NewStatusId {get;set;}
}
add a comment |
Had to copy the existing dynamic list to a new dynamic list of ExpandoObjects
. Not the cleanest, but better than creating a dedicated class (for me):
var workOrderStatusList = new List<dynamic>();
//loop through work order details in order, subtracting that line item's needs from the total available
for (int i = 0; i < lstApprovedButNotStartedWorkOrderDetailsItem.Count; i++)
{
//get wod instance
var wod = lstApprovedButNotStartedWorkOrderDetailsItem[i];
//Add new list item with updated status
workOrderStatusList.Add(new ExpandoObject());
workOrderStatusList[i].WorkOrderHeaderId = wod.WorkOrderHeaderId;
workOrderStatusList[i].OriginalStatusId = wod.OriginalStatusId;
workOrderStatusList[i].NewStatusId = decTotalUnitsAvailable >= wod.NeededQty
? (int)WorkOrderStatus.Released
: (int)WorkOrderStatus.InventoryHold;
//decrement allocated qty from available
decTotalUnitsAvailable -= wod.NeededQty;
}
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%2f54042419%2fhow-to-edit-anonymous-dynamic-list-in-c-sharp%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
You can add to an existing list of anonymous types by adding another "anonymous type" with the same properties as the ones in the list:
using System;
using System.Linq;
public class Program
{
public static void Main()
{
Console.WriteLine("Hello World");
var list = (new { 1, 2, 3 })
.Select(i => new { Value = i })
.ToList();
list.Add(new { Value = 4 });
foreach (var i in list)
Console.WriteLine(i);
}
}
However, anonymous types are immutable. They are only projections of existing data and calculations. So you're better off just making a custom type for this ... it doesn't have to be very onerous, just make a new type that inherits from the "old" type that you're working with:
public class CustomWorkOrderDetailsItem : WorkOrderDetailsItem
{
public int NewStatusId {get;set;}
}
add a comment |
You can add to an existing list of anonymous types by adding another "anonymous type" with the same properties as the ones in the list:
using System;
using System.Linq;
public class Program
{
public static void Main()
{
Console.WriteLine("Hello World");
var list = (new { 1, 2, 3 })
.Select(i => new { Value = i })
.ToList();
list.Add(new { Value = 4 });
foreach (var i in list)
Console.WriteLine(i);
}
}
However, anonymous types are immutable. They are only projections of existing data and calculations. So you're better off just making a custom type for this ... it doesn't have to be very onerous, just make a new type that inherits from the "old" type that you're working with:
public class CustomWorkOrderDetailsItem : WorkOrderDetailsItem
{
public int NewStatusId {get;set;}
}
add a comment |
You can add to an existing list of anonymous types by adding another "anonymous type" with the same properties as the ones in the list:
using System;
using System.Linq;
public class Program
{
public static void Main()
{
Console.WriteLine("Hello World");
var list = (new { 1, 2, 3 })
.Select(i => new { Value = i })
.ToList();
list.Add(new { Value = 4 });
foreach (var i in list)
Console.WriteLine(i);
}
}
However, anonymous types are immutable. They are only projections of existing data and calculations. So you're better off just making a custom type for this ... it doesn't have to be very onerous, just make a new type that inherits from the "old" type that you're working with:
public class CustomWorkOrderDetailsItem : WorkOrderDetailsItem
{
public int NewStatusId {get;set;}
}
You can add to an existing list of anonymous types by adding another "anonymous type" with the same properties as the ones in the list:
using System;
using System.Linq;
public class Program
{
public static void Main()
{
Console.WriteLine("Hello World");
var list = (new { 1, 2, 3 })
.Select(i => new { Value = i })
.ToList();
list.Add(new { Value = 4 });
foreach (var i in list)
Console.WriteLine(i);
}
}
However, anonymous types are immutable. They are only projections of existing data and calculations. So you're better off just making a custom type for this ... it doesn't have to be very onerous, just make a new type that inherits from the "old" type that you're working with:
public class CustomWorkOrderDetailsItem : WorkOrderDetailsItem
{
public int NewStatusId {get;set;}
}
edited Jan 4 at 16:23
Lews Therin
2,80111641
2,80111641
answered Jan 4 at 16:14
Joel MartinezJoel Martinez
32.8k23111176
32.8k23111176
add a comment |
add a comment |
Had to copy the existing dynamic list to a new dynamic list of ExpandoObjects
. Not the cleanest, but better than creating a dedicated class (for me):
var workOrderStatusList = new List<dynamic>();
//loop through work order details in order, subtracting that line item's needs from the total available
for (int i = 0; i < lstApprovedButNotStartedWorkOrderDetailsItem.Count; i++)
{
//get wod instance
var wod = lstApprovedButNotStartedWorkOrderDetailsItem[i];
//Add new list item with updated status
workOrderStatusList.Add(new ExpandoObject());
workOrderStatusList[i].WorkOrderHeaderId = wod.WorkOrderHeaderId;
workOrderStatusList[i].OriginalStatusId = wod.OriginalStatusId;
workOrderStatusList[i].NewStatusId = decTotalUnitsAvailable >= wod.NeededQty
? (int)WorkOrderStatus.Released
: (int)WorkOrderStatus.InventoryHold;
//decrement allocated qty from available
decTotalUnitsAvailable -= wod.NeededQty;
}
add a comment |
Had to copy the existing dynamic list to a new dynamic list of ExpandoObjects
. Not the cleanest, but better than creating a dedicated class (for me):
var workOrderStatusList = new List<dynamic>();
//loop through work order details in order, subtracting that line item's needs from the total available
for (int i = 0; i < lstApprovedButNotStartedWorkOrderDetailsItem.Count; i++)
{
//get wod instance
var wod = lstApprovedButNotStartedWorkOrderDetailsItem[i];
//Add new list item with updated status
workOrderStatusList.Add(new ExpandoObject());
workOrderStatusList[i].WorkOrderHeaderId = wod.WorkOrderHeaderId;
workOrderStatusList[i].OriginalStatusId = wod.OriginalStatusId;
workOrderStatusList[i].NewStatusId = decTotalUnitsAvailable >= wod.NeededQty
? (int)WorkOrderStatus.Released
: (int)WorkOrderStatus.InventoryHold;
//decrement allocated qty from available
decTotalUnitsAvailable -= wod.NeededQty;
}
add a comment |
Had to copy the existing dynamic list to a new dynamic list of ExpandoObjects
. Not the cleanest, but better than creating a dedicated class (for me):
var workOrderStatusList = new List<dynamic>();
//loop through work order details in order, subtracting that line item's needs from the total available
for (int i = 0; i < lstApprovedButNotStartedWorkOrderDetailsItem.Count; i++)
{
//get wod instance
var wod = lstApprovedButNotStartedWorkOrderDetailsItem[i];
//Add new list item with updated status
workOrderStatusList.Add(new ExpandoObject());
workOrderStatusList[i].WorkOrderHeaderId = wod.WorkOrderHeaderId;
workOrderStatusList[i].OriginalStatusId = wod.OriginalStatusId;
workOrderStatusList[i].NewStatusId = decTotalUnitsAvailable >= wod.NeededQty
? (int)WorkOrderStatus.Released
: (int)WorkOrderStatus.InventoryHold;
//decrement allocated qty from available
decTotalUnitsAvailable -= wod.NeededQty;
}
Had to copy the existing dynamic list to a new dynamic list of ExpandoObjects
. Not the cleanest, but better than creating a dedicated class (for me):
var workOrderStatusList = new List<dynamic>();
//loop through work order details in order, subtracting that line item's needs from the total available
for (int i = 0; i < lstApprovedButNotStartedWorkOrderDetailsItem.Count; i++)
{
//get wod instance
var wod = lstApprovedButNotStartedWorkOrderDetailsItem[i];
//Add new list item with updated status
workOrderStatusList.Add(new ExpandoObject());
workOrderStatusList[i].WorkOrderHeaderId = wod.WorkOrderHeaderId;
workOrderStatusList[i].OriginalStatusId = wod.OriginalStatusId;
workOrderStatusList[i].NewStatusId = decTotalUnitsAvailable >= wod.NeededQty
? (int)WorkOrderStatus.Released
: (int)WorkOrderStatus.InventoryHold;
//decrement allocated qty from available
decTotalUnitsAvailable -= wod.NeededQty;
}
answered Jan 4 at 18:37
Chad RichardsonChad Richardson
2,51563373
2,51563373
add a comment |
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%2f54042419%2fhow-to-edit-anonymous-dynamic-list-in-c-sharp%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
anonynous types are readonly i guess
– Ehsan Sajjad
Jan 4 at 16:08