0
新的集合,我想從列表中刪除已使用的項目來填充下拉列表C#創建兩個集合
private void SetAvailableCodes(IEnumerable<ProductCodeVm> productCodes)
{
var availableCodes = from item in Enum.GetNames(typeof(ProductCodeType))
where item != ProductCodeType.None.ToString()
select new
{
Id = (int)((ProductCodeType)Enum.Parse(typeof(ProductCodeType), item)),
Name = item
};
// Todo remove productCodes.ProductCodeType
this.ViewData["CodeList"] = availableCodes;
}
public class ProductCodeVm
{
public int Id { get; set; }
public int ProductId { get; set; }
public ProductCodeType ProductCodeType { get; set; } <--- Enum
public string Value { get; set; }
}
有沒有辦法實現這一目標使用LINQ,或做我需要做一些鑄造還是別的什麼?
可用的代碼來自Db的
// Add codes
var codes = ProductCodeManager.GetByProductId(model.Id);
model.ProductCodes =
codes.Select(
c =>
new ProductCodeVm
{
ProductCodeType = c.ProductCodeType,
Value = c.Value,
ProductCodeId = c.ProductCodeId
});
this.SetAvailableCodes(model.ProductCodes);
可用的代碼僅用於填充下拉列表(ID,姓名)
this.ViewData["CodeList"] = availableCodes;
你想刪除或剛纔給他們,也,你是什麼「已使用」的意思,你的意思是你只是想要procutCodes的獨特列表? –
如何定義項目是否已被使用? –
我認爲你需要澄清什麼被刪除。您將'ProductCodeVm'列表傳遞給方法,但在創建分配給'ViewData [「CodeList」]''的'availableCodes'變量時,實際上不會使用它。 –