亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我應該 DeepCopy List<T> 而不是從 JSON 中創建實例嗎?

我應該 DeepCopy List<T> 而不是從 JSON 中創建實例嗎?

C#
絕地無雙 2022-12-24 12:43:05
例如List<Employee>,我有一個對象列表,列表中的每個員工都將從 .JSON 文件加載。我還需要為List<Employee>我需要創建的新員工創建新實例并更改新實例的屬性,因為 JSON 文件為每個員工提供了一個體系結構或工作流基礎,我不需要每次需要實例時都從頭開始創建的List<Employee>簡而言之, 我什么時候需要一個新實例?我應該再次創建List<Employee>和讀取 JSON 文件嗎?或者我應該使用DeepCloner擴展作為例子嗎?用于克隆基礎List<Employee>并啟動 List 的新實例?此外,json 文件可能稍后會更改。所以克隆人只會使用舊的員工名單!當使用 DeepCloner 擴展從 main 創建超過 10 個實例時,我發現性能很棒List<Employee>。List<Employee>但是通過再次讀取相同的 JSON 文件創建一個需要更多時間。什么是好的場景,第一個實例必須從 json 加載,但是第二個和第三個實例呢?它也應該閱讀 json 嗎?json 可能后來改變了?或者只是做 DeepCloner ?或者如何很好地實現它。關鍵字: Main List<Employee>:這個 main 必須從 JSON 讀取的第一個實例。Mihir Dave回答對我有好處。
查看完整描述

1 回答

?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

如果我要實現這個,我會做類似下面的事情。


讓我們假設 DeepClone 是一種緩存機制。在使用緩存時,您還應該考慮緩存破壞。


那么我們將如何實施呢?


創建一個返回 List 以及兩個靜態變量的方法


private static List<Employee> globalEmployees = null;

private static DateTime globalFileModifiedTime;


public static List<Employee> GetEmployees()

{}

現在,此方法應該知道何時從文件中讀取以及何時使用 DeepCloner。

什么時候不使用 DeepCloner?

  • 什么時候globalEmployees為空

  • 當全局員工文件修改時間比我們存儲的時間更新時globalFileModifiedTime

注意:每次你從文件中讀取,更新globalEmployeesglobalFileModifiedTime你可以使用 DeepCloner 進行下一個請求

對于任何其他用例,您可以使用 DeepCloner。


查看完整回答
反對 回復 2022-12-24
  • 1 回答
  • 0 關注
  • 113 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號