簡體   English   中英

在C#中將兩個列表合並在一起

[英]Union two lists together in C#

public static SelectList IndicationsGroup(int? entityId, int? projectType, int? oldProjectType)
        {
            List<SelectListItem> oldSelectList = new List<SelectListItem>();
            List<SelectListItem> newSelectList = new List<SelectListItem>();

            ISpWeb_ProjectListResultSet newList = Chatham.Web.Proxies.TransactionsDataTier.ExecSpWeb_ProjectList(entityId, projectType);
            ISpWeb_ProjectListResultSet oldList = Chatham.Web.Proxies.TransactionsDataTier.ExecSpWeb_ProjectList(entityId, oldProjectType);

            foreach (SpWeb_ProjectList1LightDataObject item in newList.SpWeb_ProjectList1)
            {
                newSelectList.Add(new SelectListItem() { Text = item.ProjectName, Value = item.ProjectName.GetHashCode().ToString() });
            }
            foreach (SpWeb_ProjectList1LightDataObject item in oldList.SpWeb_ProjectList1)
            {
                oldSelectList.Add(new SelectListItem() { Text = item.ProjectName, Value = item.ProjectName.GetHashCode().ToString() });
            }

            // I want to return a union of the two select lists...
            // return new SelectList(unionedList, "Value", "Text");

        }

public class SelectListItem
    {
        public SelectListItem();

        public bool Selected { get; set; }
        public string Text { get; set; }
        public string Value { get; set; }
    }

我如何使我的SelectListItem類成為IEquitable?

上面的代碼應在注釋中解釋我想做什么。 有人告訴我我可以使用LINQ,但是我不知道我在做什么。 謝謝!

你的意思是這樣嗎?

return new SelectList(oldSelectList.Union(newSelectList), "Value", "Text");
// This will return a "union ALL" of the two select lists...
return new SelectList(newSelectList.Concat(oldSelectList), "Value", "Text");

//this will return a union of distinct values of the two selects,
//PROVIDED that SelectListItem is IEquatable
return new SelectList(newSelectList.Union(oldSelectList), "Value", "Text");

//this will return a union of distinct values of the two selects,
//given an implementation of an IEqualityComparer<SelectListItem> equalityComparer
//that will semantically compare two SelectListItems
return new SelectList(newSelectList.Union(oldSelectList, equalityComparer), "Value", "Text");
return new SelectList(newSelectList.Concat(newSelectList), "Value", "Text");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM