Tag: C#的

我不了解getline +string?

这是我第一次使用stackoverflow。 我一直无法find我需要关于getline的信息。 我在一个简单的编程类工程转让,所以我们写的代码是非常简单的。 我所要做的就是将用户定义的问题和答案数量放到两个不同的数组中。 我的while循环看起来像这样(我正在使用for循环,但切换到只是为了看看它会停止打破): int main () { srand((unsigned)time(0)); string quest1[100], answ1[100]; int size1, x = 0, num, count1, visit[100], shuffle[100]; fstream flashcard1; cout << "flashcard.cpp by NAME\n" << endl; cout << "This program allows user to manipulate questions and answers for studying.\n" << endl; cout << "\nHow many flash cards will be entered(MAX […]

我怎样才能从一个方法返回一个匿名types?

我有一个Linq查询,我想从多个地方调用: var myData = from a in db.MyTable where a.MyValue == "A" select new { a.Key, a.MyValue }; 我怎样才能创build一个方法,把这个代码放在里面,然后调用它呢? public ??? GetSomeData() { // my Linq query }

SortedList <K,V>上有下限函数吗?

SortedList<K ,V>上有下限函数吗? 该函数应返回等于或大于指定键的第一个元素。 还有其他一些课程支持吗? 伙计们 – 请再次阅读这个问题。 如果它存在,我不需要一个返回键的函数。 如果没有确切的密钥匹配,我对情况感兴趣。 我对O(log n)时间感兴趣 。 这意味着我没有foreach循环的问题,而是希望有一个有效的方法来做到这一点。 我已经做了一些testing。 Linq语句没有被编译器和运行时机器优化,所以他们遍历所有的集合元素,并且速度很慢(O(n))。 基于Mehrdad Afshari的回答,这里是一个二进制search在Keys集合的O(log n)中工作: public static int FindFirstIndexGreaterThanOrEqualTo<T>( this IList<T> sortedCollection, T key ) where T : IComparable<T> { int begin = 0; int end = sortedCollection.Count; while (end > begin) { int index = (begin + end) / 2; T […]

如何防止SQL注入转义string

我有一些查询(对acccess数据库)像这样: string comando = "SELECT * FROM ANAGRAFICA WHERE E_MAIL='" + user + "' AND PASSWORD_AZIENDA='" + password + "'"; 我想“逃避”用户和密码,防止注射。 我怎样才能用C#和.NET 3.5做到这一点? 我正在寻找PHP的mysql_escape_string …

使用C获取密码而不使用getpass(3)?

我可以使用getpass()来获取密码。 不过,手册页说: 这个function已经过时了。 不要使用它。 目前从用户terminal获取密码的方式是什么,而不是以符合POSIX的方式回显密码? [本来我说的是“可移植的”,但我的意图是避免使用过时的function。]

DataGridView绑定到一个Dictionary

我有一个包含项目和价格的Dictionary 。 这些项目是独一无二的,但在应用程序的整个生命周期中慢慢地被添加和更新(也就是说,我事先不知道项目string)。 我想将这个结构绑定到一个DataGridView,所以我可以在我的窗体上显示更新,如下所示: Dictionary<string, double> _priceData = new Dictionary<string, double>(); BindingSource _bindingSource = new BindingSource(); dataGridView1.DataSource = _bindingSource; _bindingSource.DataSource = _priceData; 但是不能,因为Dictionary没有实现IList (或者IListSource , IBindingList或者IBindingListView )。 有没有办法做到这一点? 我需要保持一个唯一的项目列表,但也更新现有项目的价格,所以一个Dictionary是我想的理想的数据结构,但我无法find一种方法来显示我的表单上的数据。 更新: 下面的Marc的build议很好地工作,但我仍然不知道如何在执行过程中更新DataGridView。 我有一个类级variables: private DictionaryBindingList<string, decimal> bList; 然后在Main()实例化: bList = new DictionaryBindingList<string,decimal>(prices); dgv.DataSource = bList; 然后在程序执行过程中,如果新的条目被添加到字典中: prices.Add("foobar", 234.56M); bList.ResetBindings(); 我想这会刷新DataGridView。 为什么不?

linq案例陈述

我需要一些在LINQ(C#)CASE语句的帮助: osc_products.products_quantity = CASE WHEN itempromoflag <> 'N' THEN 100000 WHEN itemcat1 IN ('1','2','31') AND itemsalestatus = 'S' THEN 100000 WHEN itemsalestatus = 'O' THEN 0 ELSE cds_oeinvitem.itemqtyonhand – cds_oeinvitem.itemqtycommitted END 我开始转换到LINQ,(我还在学习): cdsDBDataContext db = new cdsDBDataContext(); var query = from items in db.cdsItems where items.ItemHandHeldFlag.Equals("Y") && items.ItemQtyOnHand – items.ItemQtyCommitted > 0 select items; 此查询将库存状态从生产更新到商业网站。

包含命名空间的XDocument

我有下面的XML,我试图用XDocument查询: <E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent"> <System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system"> <EventID>589828</EventID> <Type>3</Type> <SubType Name="Information">0</SubType> <Level>8</Level> <TimeCreated SystemTime="2010-06-01T09:45:15.8102117Z" /> <Source Name="System.ServiceModel" /> <Correlation ActivityID="{00000000-0000-0000-0000-000000000000}" /> <Execution ProcessName="w3wp" ProcessID="5012" ThreadID="5" /> <Channel /> <Computer>TESTSERVER3A</Computer> </System> <ApplicationData> <TraceData> <DataItem> <TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Information"> <TraceIdentifier>http://msdn.microsoft.com/en-GB/library/System.ServiceModel.Activation.WebHostCompilation.aspx</TraceIdentifier> <Description>Webhost compilation</Description> <AppDomain>/LM/W3SVC/257188508/Root-1-129198591101343437</AppDomain> <Source>System.ServiceModel.Activation.ServiceParser/39498779</Source> <ExtendedData xmlns="http://schemas.microsoft.com/2006/08/ServiceModel/StringTraceRecord"> <VirtualPath>/Service.svc</VirtualPath> </ExtendedData> </TraceRecord> </DataItem> </TraceData> </ApplicationData> </E2ETraceEvent> 除了手动删除名称空间时,执行以下代码将为xEl1返回null: XDocument xDoc = XDocument.Parse(CurrentString); XElement xEl1 […]

从多个线程使用stdlib的rand()

我有几个线程都运行相同的function。 在每一个这些他们产生一个不同的随机数数倍。 我们试图通过把srand(time(0))放在srand(time(0))的开头来做到这一点,但似乎它们都得到了相同的数字。 我们是否需要每个程序只调用一次srand(time(0)) ,即在main (例如)的开始处,每次调用几次函数的开始处,还是别的东西?

委托构造函数C ++

我做对了吗? 我试图委托一个C ++类的构造函数,因为它基本上是相同的代码重复3次..我读了C + + x11和读取,g ++ 4.7.2允许这个,但我不知道如果我这样做对: Bitmap::Bitmap(HBITMAP Bmp) { //Construct some bitmap stuff.. } Bitmap::Bitmap(WORD ResourceID) { HBITMAP BMP = (HBITMAP)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(ResourceID), IMAGE_BITMAP, 0, 0, LR_SHARED); Bitmap(BMP); //Delegates to the above constructor? Or does this create a temporary? } 或者我需要这样做: Bitmap::Bitmap(HBITMAP Bmp) { //Construct some bitmap stuff.. } Bitmap::Bitmap(WORD ResourceID) : Bitmap((HBITMAP)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(ResourceID), […]