小编B. *_*non的帖子

为什么bool的默认值val(false)无法识别?

使用此代码:

bool successfulSend;
const string quote = "\"";
string keepPrinterOn = string.Format("! U1 setvar {0}power.dtr_power_off{0} {0}off{0}", quote);
string shutPrinterOff = string.Format("! U1 setvar {0}power.dtr_power_off{0} {0}on{0}", quote);
string advanceToBlackBar = string.Format("! U1 setvar {0}media.sense_mode{0} {0}bar{0}", quote);
string advanceToGap = string.Format("! U1 setvar {0}media.sense_mode{0} {0}gap{0}", quote);

if (radbtnBar.Checked)
{
    successfulSend = SendCommandToPrinter(advanceToBlackBar);
}
else if (radbtnGap.Checked)
{
    successfulSend = SendCommandToPrinter(advanceToGap);
}
if (successfulSend)
{
    MessageBox.Show("label type command successfully sent");
}
Run Code Online (Sandbox Code Playgroud)

我得到," 使用未分配的局部变量'successfulSend' "

所以我必须将bool声明更改为:

bool successfulSend = false;
Run Code Online (Sandbox Code Playgroud)

...让它编译/运行.但是bool [ean] s的默认值是不是假的?为什么必须明确指定默认值?

此代码没有任何投诉: …

c# boolean default default-value

1
推荐指数
1
解决办法
159
查看次数

如何从 SQL Server CE 数据库检索所有表名称的列表?

是否有一些 SQL 要么返回一个表名列表,要么(切入正题)返回一个布尔值以确定具有某种模式的表名是否存在?

具体来说,我需要知道数据库中是否有一个名为 、 、 、 、 、 、 等的表INV[Bla]INVclayINVcherri部分INVkelvinINVmorganINVgrandFunk正在INVgobbledygook寻找INV2468WhoDoWeAppreciateINV;表名的其余部分几乎可以是任何内容)。

IOW,SQL语句中可以使用“通配符”吗,例如:

SELECT * tables 
FROM database 
WHERE tableName = 'INV*'
Run Code Online (Sandbox Code Playgroud)

或者这将如何实现?

sql windows-ce sql-server-ce database-schema

1
推荐指数
1
解决办法
674
查看次数

如何消除Windows Store主页上的流氓"计数器"?

我有一个简约的主页 - 4个按钮和一个Bing地图.

但是,当我运行应用程序时,我会在左上角和右上角看到两个流氓"计数器"(不知道如何描述它们).这是左上角的那个:

在此输入图像描述

是什么导致了他们,我怎么能摆脱他们?

顺便说一下,左边的黑色垂直条是"按照设计"(没有双关语) - "计数器"下面是我的四个按钮,垂直堆叠(我故意给Bing地图只有80%的页面,而不是100%它贪婪地从git-go中抓起来).

UPDATE

对于Ashok:以下是XAML的全部内容:

<Page
    x:Class="Platypus.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:Platypus"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:bm="using:Bing.Maps"
    mc:Ignorable="d">

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" Margin="0,0,0,0">
        <bm:Map Credentials="42314" x:Name="platypusMap" Margin="197,0,0,0" ></bm:Map>
        <Button x:Name="btnOpenImgFiles" Content="Open Images" HorizontalAlignment="Left" Margin="2,48,0,0" VerticalAlignment="Top" Click="btnOpenImgFiles_Click"/>
        <Button x:Name="btnOpenMap" Content="Open Saved Map" HorizontalAlignment="Left" Margin="2,128,0,0" VerticalAlignment="Top" Click="btnOpenMap_Click" />
        <Button x:Name="btnSaveMap" Content="Save Map" HorizontalAlignment="Left" Margin="2,208,0,0" VerticalAlignment="Top" Click="btnSaveMap_Click" />
        <Button x:Name="btnEmailMap" Content="Email Map" HorizontalAlignment="Left" Margin="2,288,0,0" VerticalAlignment="Top" Click="btnEmailMap_Click" />
    </Grid>
</Page>
Run Code Online (Sandbox Code Playgroud)

wpf bing-maps windows-store-apps windows-8.1

1
推荐指数
1
解决办法
82
查看次数

如何在LINQ(C#)中对不同的val进行排序?

我有这个LINQ从通用列表中获取特定类成员的不同值:

var distinctDescriptions = itemsForMonthYearList.Select(x => x.ItemDescription).Distinct();
Run Code Online (Sandbox Code Playgroud)

通用列表以这种方式定义:

List<ItemsForMonthYear> itemsForMonthYearList;
Run Code Online (Sandbox Code Playgroud)

这堂课是:

public class ItemsForMonthYear
{
    public String ItemDescription { get; set; }
    public String monthYr { get; set; }
    public int TotalPackages { get; set; }
    public Decimal TotalPurchases { get; set; }
    public Decimal AveragePrice { get; set; }
    public Double PercentOfTotal { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我认为这会奏效:

var distinctDescriptions = itemsForMonthYearList.Select(x => x.ItemDescription).Distinct().OrderBy(x => x.ItemDescription);
Run Code Online (Sandbox Code Playgroud)

...但它甚至没有编译:

" 'string'不包含'ItemDescription'的定义,也没有扩展方法'ItemDescription'接受'string'类型的第一个参数(你是否缺少using指令或汇编引用?) "

如何按字母顺序对不同的值进行排序?

c# linq generic-list distinct-values

1
推荐指数
1
解决办法
112
查看次数

为什么复杂的字符串(字符串化的json数据)不被接受为Web API方法的POST参数,但是一个简单的字符串是什么?

我想将一堆数据,转换为json,作为字符串,发送到Web API POST方法.我可以发送一个简单的字符串,但是当我尝试发送字符串化的json数据时,甚至没有达到该方法 - 显然复杂的字符串不被视为有效的字符串值或其他东西.

当从客户端传递"randomString"时,这是有效的:

Web API

[Route("{unit}/{begindate}/{enddate}/{stringifiedjsondata}")]
[HttpPost]
public void Post(string unit, string begindate, string enddate, string stringifiedjsondata)
{
    // test
    string jsonizedData = stringifiedjsondata;
Run Code Online (Sandbox Code Playgroud)

的WinForms

string dataAsJson = "randomString";
String uriToCall = String.Format("/api/produceusage/{0}/{1}/{2}/{3}", _unit, beginRange, endRange, dataAsJson);
HttpResponseMessage response = await client.PostAsync(uriToCall, null);
Run Code Online (Sandbox Code Playgroud)

当字符串是json数据时,例如:

[
  {
    "ItemDescription": "DUCKBILLS, GRAMPS-EIER 70CT  42#",
    "PackagesMonth1": 1467, . . . }]
Run Code Online (Sandbox Code Playgroud)

...这是行不通的.我通过使用JSON.NET将通用列表转换为json来创建此字符串,如下所示:

string dataAsJson = JsonConvert.SerializeObject(_rawAndCalcdDataAmalgamatedList, Formatting.Indented);
String uriToCall = String.Format("/api/produceusage/{0}/{1}/{2}/{3}", _unit, beginRange, endRange, dataAsJson);
HttpResponseMessage response = await client.PostAsync(uriToCall, null); …
Run Code Online (Sandbox Code Playgroud)

c# serialization http-post json.net asp.net-web-api-routing

1
推荐指数
1
解决办法
923
查看次数

为什么这个LINQ查询会抛出InvalidCastException?

我在这一行得到一个InvalidCastException:

List<Student> studentsWithSameSurname =
    (List<Student>)_studentsList
        .Where(i => i.LastName == textBoxLastName.Text.Trim())
        .GroupBy(j => j.FamilyID);
Run Code Online (Sandbox Code Playgroud)

_studentsList是一个List<Student>,所以我不知道为什么(List<Student>)是一个无效的演员.

对于那些想要更多上下文的人来说,这是一个Winforms应用程序,其中我将自定义类的通用列表序列化为json文件,然后在我想处理数据时反序列化它,并使用LINQ进行查询.

_studentsList 是这样定义的:

List<Student> _studentsList;
Run Code Online (Sandbox Code Playgroud)

学生班是:

public class Student
{
    public int StudentID { get; set; }
    public int FamilyID { get; set; }
    public bool EnrolledInAYttFM { get; set; }
    public DateTime DateEnrolledOrHiatusAYttFM { get; set; }
    public bool GivesBibleReading { get; set; }
    public bool PresentsICRVBS { get; set; }
    public bool IsHouseholder { get; set; }
    public bool …
Run Code Online (Sandbox Code Playgroud)

c# linq generics generic-list

1
推荐指数
1
解决办法
151
查看次数

如何使用LINQ从通用列表中获取下一个适当的值?

我有一节课:

public class CounselPoints
{
    public int CounselNum { get; set; }
    public String CounselPoint { get; set; }
    public bool BR { get; set; }
    public bool ICRVBS { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

......以及该类的通用列表:

List<CounselPoints> counselPoints = AYttFMConstsAndUtils.DeserializeCounselPointsFile();
Run Code Online (Sandbox Code Playgroud)

我想从该通用列表中检索下一个适当的CounselPoint,其逻辑可以用SQL表示,如下所示:

SELECT TOP 1 CounselNumber
FROM COUNSELPOINTSLU
WHERE BR IS TRUE
AND CounselNumber > @LastCounselPoint;
Run Code Online (Sandbox Code Playgroud)

我把这种方法称为试图获得该值,并且像这样挥舞着它:

public static int GetNextBibleReadingCounselPoint(int LastCounselPoint)
{
    List<CounselPoints> counselPoints = AYttFMConstsAndUtils.DeserializeCounselPointsFile();
    return counselPoints.FirstOrDefault(i => i.CounselNum).Where(j => j.BR).Where(k => k.CounselNum > LastCounselPoint);
}
Run Code Online (Sandbox Code Playgroud)

在"英语"中,我试图说," 给我第一个比传入的arg(LastCounselPoint)更大数量的CounselNum,以及BR是真的 "

例如,如果我传入17,并且CounselNum值为18的counselPoint"记录"也将BR设置为true,则应该返回18.简单,不是吗? …

c# linq generics lambda generic-list

1
推荐指数
1
解决办法
622
查看次数

我怎样才能获得MediumDateString?

我可以将YYYYMMDD格式的字符串值转换为人类友好的字符串,如下所示:

string beginDate = GetElement(3, fileBaseName);
string endDate = GetElement(4, fileBaseName);
beginDate = DateTime.ParseExact(beginDate,
    "yyyyMMdd",
    CultureInfo.InvariantCulture).ToShortDateString();
endDate = DateTime.ParseExact(endDate,
    "yyyyMMdd",
    CultureInfo.InvariantCulture).ToShortDateString();
return string.Format("{0} to {1}", beginDate, endDate);
Run Code Online (Sandbox Code Playgroud)

但是如上所述使用ToShortDateString(),我得到了不那么友好的格式" 2016年4月1日到2016年4月30日 "

当我尝试ToLongDateString()时,它走向另一个方向太远,将数字扩展为月份名称(我想要的),但也提供一周中某一天的长形式,以便相同的值显示为" 星期五" 2016年4月1日至2016年4月30日(星期六) "

我真正想要的是将日期范围显示为" 2016年4月1日至2016年4月30日 "(或" 2016年4月1日至2016年4月30日 ")

我可以使用ToShortDateString()ToLongDateString()之间的中间地带,还是需要"自己滚动"才能得到它?

c# date-conversion datetime-format

1
推荐指数
1
解决办法
139
查看次数

为什么在null检查后将int设置为0被认为是没有意义的?

我有这个代码,如果它为null,则将int val设置为0:

if (null == frbdcbl.QtyOrdered)
{
    frbdcbl.QtyOrdered = 0;
}
Run Code Online (Sandbox Code Playgroud)

......但是这项任务是灰色的,好像这样的行动没有实际意义.那为什么会这样?毕竟,null!= 0.

要检查的值没有默认值0或者这样:

public class FillRateByDCByLocation
{
    . . .
    public int QtyOrdered { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

具有灰色分配的代码(AddFillRateByDCByLocationRow(())被调用如下:

foreach (FillRateByDCByLocation frbdcbl in _fillRateByDCByLocGroupedSortedSummed)
{
    AddFillRateByDCByLocationRow(frbdcbl);
}
Run Code Online (Sandbox Code Playgroud)

c# null dead-code zero

1
推荐指数
1
解决办法
69
查看次数

如何检索字符串数组中某个字符的计数?

我有这个代码来尝试计算字符串数组中出现的传入字符的数量:

string[] doc1StrArray;
. . .
private int GetCountOfSpecificCharacter(string CharToCount)
{
    int count = 0;
    count = doc1StrArray.Count(f => f == CharToCount);
    return count;
}
Run Code Online (Sandbox Code Playgroud)

...这样称呼:

iCountOfCommasInDoc1 = GetCountOfSpecificCharacter(",");
Run Code Online (Sandbox Code Playgroud)

......但它不起作用。它没有发现逗号,例如,在以下情况下,尽管文档确实包含逗号。

在此处输入图片说明

更新

两者都在工作 - Roman 的建议和 Teroneko 的:

private int GetCountOfSpecificCharacterInDoc1(char CharToCount)
{
    return doc1StrArray.Sum(s => s.Count(c => c == CharToCount));
}

private int GetCountOfSpecificCharacterInDoc2(char CharToCount)
{
    return doc2StrArray.SelectMany(x => x).Count(c => c == CharToCount);
}
Run Code Online (Sandbox Code Playgroud)

...但我不知道哪个更好/更有效。

c# linq arrays

1
推荐指数
1
解决办法
239
查看次数