我試圖在查詢執行後爲「trades.Price_5s」字段賦值。下面的代碼:WPF C#LINQ:爲檢索到的查詢中的字段分配不同的值
var TradeStatsQuery = (from trades in connection.TradeStatsDatas
where (trades.Price_5s == null) || (trades.Price_10s == null)
|| (trades.Price_30s == null) || (trades.Price_60s == null)
|| (trades.Price_5min == null) || (trades.Price_15min == null)
|| (trades.Price_30min == null) || (trades.Price_60min == null)
select new
{
trades.TradeID,
trades.CurrencyPair,
trades.Action,
trades.ExecutedDateTime,
trades.Price_5s,
trades.Price_10s,
trades.Price_30s,
trades.Price_60s,
trades.Price_5min,
trades.Price_15min,
trades.Price_30min,
trades.Price_60min
});
if(TradeStatsQuery.Count() > 0)
{
foreach(var id in TradeStatsQuery)
{
if(id.Price_5s == null)
{
Console.WriteLine("-----------------------------------------");
Console.WriteLine("Trade ID: " + id.TradeID);
DateTime ET_plus5s = id.ExecutedDateTime.AddSeconds(5);
if(DateTime.Now >= ET_plus5s)
{
decimal retrieved_5sPrice;
Console.WriteLine("Fetching 5 second past trade price...");
retrieved_5sPrice = tb_connection.GetCurrencyRate(id.CurrencyPair, id.Action, ET_plus5s);
Console.WriteLine("Price 5 sec: " + retrieved_5sPrice);
id.Price_5s = retrieved_5sPrice;
我試圖指派我檢索到當前設定在零查詢領域的價格,所以我可以在以後回去重寫我與他們更新查詢的所有領域值。這可能嗎?我可以爲我以前查詢的字段賦予不同的值嗎?最後一行是錯誤發生的地方。
錯誤消息:「屬性或索引‘AnonymousType#1.Price_5s’不能被分配到 - 它是隻讀」
你試過了嗎?如果是的話會發生什麼? –
你也不需要'(TradeStatsQuery.Count()> 0)'。因爲如果沒有返回,收集將是空的,所以'foreach'無論如何不會做任何事情。 –
是的,我得到的錯誤說以下「屬性或索引器'AnonymousType#1.Price_5s'不能被分配給 - 它是隻讀的」所以我猜這意味着我不能改變它正確的大聲笑沒有任何可用的解決方法? @Peter M – kknaguib