[英]C# - Create placeholder properties dynamically based on SortOrder of other properties
使用 C# 我想創建下表 output(見截圖),其中需要動態添加紅色背景的列。
我收到基於以下 class 結構的屬性列表:
public class Attribute
{
public string Name { get; set; }
public int? Order { get; set; }
public string Value { get; set; }
}
我努力解決的部分是為 output 創建“動態”占位符列/屬性。這些列需要根據現有屬性的Order 屬性創建以填補空白,這樣 output 的結構就不會改變。
實際/現有屬性的名稱可以是 output 的通用名稱。
基於以下屏幕截圖的結構:
因為第一個現有屬性的順序為4 ,所以需要添加三列(從 1 開始)。 因為第二個屬性的階數為 6,所以需要在中間添加一列來填補空白。 列的 rest 應創建到預定義的列號。
我希望這是有道理的,如果沒有,請隨時詢問更多細節。 實際上結構更復雜,但它應該適用於這個簡化的例子。
謝謝您的意見。
要為所有訂單值生成占位符屬性,您可以這樣做:
var attributesByOrder = myAttributes.ToDictionary(a => a.Order, a => a);
var maxOrder = myAttributes.Max(a => a.Order);
var attributesAndPlaceholders = Enumerable.Range(1, maxOrder).Select(i =>
attributesByOrder.TryGet(i, out var a) ?
a :
new Attribute{
Name ="PlaceHolder",
Order = i,
Value = ""
});
如果特定訂單值存在現有屬性,這將使用現有屬性,如果不存在,則生成占位符屬性。 這假定所有屬性都具有實際的訂單值,並且它們是唯一的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.