BExIS.Ddm.Model.SearchResultsBase.ConvertToDataTable C# (CSharp) 메소드

ConvertToDataTable() 공개 메소드

public ConvertToDataTable ( ) : DataTable
리턴 System.Data.DataTable
        public DataTable ConvertToDataTable()
        {
            DataTable searchResults = new DataTable();
            if (Header != null && Rows != null)
            {

                //check for duplicates
                foreach (HeaderItem hi in Header)
                {
                    if (Header.Where(p => p.Name.Equals(hi.Name)).Count() > 1)
                    {
                        List<HeaderItem> list = Header.Where(p => p.Name.Equals(hi.Name)).ToList();

                        for (int i = 0; i < list.Count(); i++)
                        {
                            if (i > 0)
                            {
                                list.ElementAt(i).Name += i;
                                list.ElementAt(i).DisplayName += " (" + i + ")";
                            }
                        }
                    }
                }

                foreach (var colum in Header)
                {
                    if (!searchResults.Columns.Contains(colum.Name)) // when the search provider is reloaded, it contains duplicate items
                    {
                        DataColumn col = searchResults.Columns.Add(colum.Name);  // or DisplayName also

                        if (colum.DisplayName == "")
                            col.Caption = colum.Name;
                        else
                            col.Caption = colum.DisplayName;

                        if (colum.Name.Equals(Id.Name))
                        {
                            col.DataType = System.Type.GetType("System.Int64");
                        }

                    }
                }

                foreach (var row in Rows)
                {
                    searchResults.Rows.Add(row.Values.ToArray());
                }
            }
            return searchResults;
        }
SearchResultsBase