草庐IT

压缩列表

全部标签

c# - 如何在不使用循环的情况下将项目从列表复制到堆栈

我确实有一个Stack和一个List。我需要将所有项目从列表复制到堆栈而不使用循环,即for、foreach等。有推荐的方法吗? 最佳答案 您可以从任何IEnumerable对象创建堆栈varmyStack=newStack(myList);参见MSDN:http://msdn.microsoft.com/en-us/library/76atxd68.aspx但是,堆栈构造函数将在内部使用循环,只是您看不到而已。 关于c#-如何在不使用循环的情况下将项目从列表复制到堆栈,我们在Stack

c# - zlib 压缩字节数组?

我有这个未压缩的字节数组:0E7CBD036E65676C6563740000000000000000004252000001020100BB148D370A0000010000000005E905E9000000000000000000000000000001000000000081010000000000000000000000000000000000000005000001000000而且我需要使用deflate算法(在zlib中实现)对其进行压缩,根据我在C#中搜索的等效项将使用GZipStream,但我根本无法匹配压缩结果。压缩代码如下:publicbyte[]compres

c# - .Net 压缩文件

使用C#压缩文件的最佳方法是什么?理想情况下,我希望能够将文件分离到一个存档中。 最佳答案 您可以使用DotNetZip来实现这个。它可以在任何应用程序中免费使用。这是一些示例代码:try{//foreasydisposalusing(ZipFilezip=newZipFile()){//addthismapfileintothe"images"directoryintheziparchivezip.AddFile("c:\\images\\personal\\7440-N49th.png","images");//addthere

c# - 在列表上创建哈希值?

我有一个List其中有50个实例。每个实例都有1或2个独特的属性,但在某种程度上它们都是唯一的,因为列表中的位置只有一个,等等。我想想出一种独特的方法来“散列”这个列表,使其与所有其他列表不同。在.NET4中是否有一种聪明的方法来做到这一点?目的是为列表创建一种“monniker”,以便可以将它们转储到队列中,并在以后根据它们的唯一值找到它们。谢谢。 最佳答案 长话短说publicstaticintGetSequenceHashCode(thisIListsequence){constintseed=487;constintmodi

c# - list.count 是在物理上遍历列表来计算它,还是保留一个指针

我正在遍历一个大的对象列表来对列表中的所述对象做一些事情。在我的迭代过程中,我会根据特定条件从列表中删除一些对象。完成所有操作后,我需要根据列表中的对象数量更新UI。(T列表)。问题:WhenIcalllist.count,does.netactuallyiteratethroughthelisttocountit,ordoesitstorethecountasaproperty/variable?如果.net在物理上重复遍历列表,我也可以在自己遍历列表时保留一个计数器,从而节省开销?谢谢 最佳答案 它只是保留一个内部整数来跟踪项目

c# - 列表上的 IndexOf 太慢。更快的解决方案?

我有一个通用列表,它必须是一个保留顺序,所以我可以检索列表中对象的索引。问题是IndexOf太慢了。如果我将IndexOf注释掉,代码将尽可能快地运行。有没有更好的方法,例如用于c#的保留有序哈希列表?谢谢,内特编辑-添加/插入项目的顺序是它需要的顺序。无需对它们进行排序。此列表也有可能经常更新、添加、删除、插入。基本上我需要将对象转换为索引,因为它们在网格控件中表示,因此我可以根据索引在网格控件上执行操作。 最佳答案 如果它没有排序,但顺序需要保留,那么你可以有一个单独的Dictionary其中将包含每个元素的索引。如果您想要一个

c# - 如何给下拉列表控件设置默认值?

我的网页上有一个下拉列表控件。我已将数据表绑定(bind)到下拉列表控件,如下所示-lstDepartment.DataTextField="DepartmentName";lstDepartment.DataValueField="DepartmentID";lstDepartment.DataSource=dtDept;lstDepartment.DataBind();在页面加载事件中,我想将默认值设置为来自其他表字段的下拉列表控件。如何做到这一点? 最佳答案 在你的DataBind()之后:lstDepartment.Sele

c# - 使用 MVVM 将列表框滚动到 View 中

我有一个非常简单的问题,但我不知道如何使用MVVM破解它。我有一个ListBox绑定(bind)到ObservableCollection.我运行一个进程,将一大堆项目添加到集合中,因此它们显示在ListBox中。.问题是当项目被添加到列表框时...滚动条只是增长,但我似乎无法弄清楚如何制作它ScrollIntoView对于添加到集合中的每个项目。此示例代码完美地说明了问题。XAML查看模型namespaceStack{usingSystem;usingSystem.Collections.ObjectModel;usingSystem.ComponentModel;usingSyst

c# - 清空所有数组列表数据

为什么下面的代码没有清除所有数组列表数据?Console.WriteLine("Beforecleaning:"+Convert.ToString(ID.Count));//ID.Count=20for(inti=0;i为什么10会打印到屏幕上?也许还有另一个特殊功能,可以删除所有内容? 最佳答案 您实际上只调用了RemoveAt10次。当i达到10时,ID.Count也将是10。您可以通过以下方式解决此问题:intcount=ID.Count;for(inti=0;i不过,这是一个复杂度为O(n2)的操作,因为从列表开头删除条目涉

c# - 如何在 C# 中根据索引拆分列表?

我现在有一个包含大约190个元素的列表。如何将列表拆分为更小的列表,每个列表中最多包含50个元素?结果可能是包含50、50、50和40个元素的列表。 最佳答案 假设您的意思是List,您可以使用GetRange方法反复。哎呀,你可以用LINQ做到这一点:varlists=Enumerable.Range(0,(list.Count+size-1)/size).Select(index=>list.GetRange(index*size,Math.Min(size,list.Count-index*size))).ToList();当