我需要将一个数字分成偶数部分,例如:
32427237需要成为324 272 37
103092501需要成为103 092 501
我相信我可以接下来的数字,但我确信有一种更有效的方式,因为我不想错过这些数字中的字符 - 数字本身可以是任意长度所以如果数字是1234567890我希望它分成这些部分123 456 789 0
我已经看过其他语言的例子,比如Python等,但我不太了解它们将它们转换为C# - 循环通过字符然后在第三个获取前一个然后该索引来获取字符串的部分可能做好这份工作,但我愿意接受如何更好地完成这项工作的建议.
我一直在使用LINQ一段时间了,但似乎被困在关于Unique项目的东西上,我有下面的列表:
List<Stock> stock = new List<Stock>();
Run Code Online (Sandbox Code Playgroud)
它具有以下属性:字符串ID,字符串类型,字符串描述,示例:
public class Stock
{
public string ID { get; set; }
public string Type { get; set; }
public string Description { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我希望有一个LINQ查询,它将按照类型将库中的项目分组,并将其作为新的库存列表返回(它必须与原始库存列表的类型相同).
示例数据:
ID Type Description
----------------------------------------------
1 Kitchen Appliance Dishwasher
2 Living Room Television
3 Kitchen Appliance Washing Machine
4 Kitchen Appliance Fridge
Run Code Online (Sandbox Code Playgroud)
...
我的Linq查询希望能够返回所有的厨房用具示例.
所以我将它作为"类型"传递给查询,它将返回此示例列表中的项目1,3和4.
返回的列表也必须是以下类型:List<Stock>.
基本上我想要一个按类型列出的唯一项目,类似于SQL Distinct查询,我如何在LINQ中实现这一点?
替代解决方案很好,但必须只是Silverlight/C#客户端代码.
只是另一个澄清是我也可能不提供参数"厨房用具",可能只想要独特的参数,例如,它将返回厨房用具和起居室,只是类似于一个类别,无论多少类型有.
我在这里选择了标题,因为我的问题是需要获取示例中提到的Item节点.我有以下XML,并且在使用LINQ查询它时遇到问题,我之前已经能够解析XML了 - 但是我已经坚持了几个小时并希望有人可以提供帮助.以下是我的XML数据(示例数据):
<a:entry xmlns:a="http://www.w3.org/2005/Atom">
<a:id>98765</a:id>
<info>Data Catalogue</info>
<data>
<items>
<item>
<id>123456</id>
<value>Item One</value>
</item>
<item>
<id>654321</id>
<value>Item Two</value>
</item>
<items>
</data>
<items>
<item>
<id>123456</id>
<value>Item One</value>
</item>
<item>
<id>654321</id>
<value>Item Two</value>
</item>
<items>
<a:author>
<a:name>Catalogue</a:name>
</a:author>
</a:entry>
Run Code Online (Sandbox Code Playgroud)
我希望能够从Items下的Item XML标签中提取ID,但是在数据下面有一个带有Item条目的Items Tag我根本不想要这些节点 - 如果表达了我想要root/items/id/id作为道路.我已经尝试过LINQ的所有知识,所以如果有人可以提供帮助,请注意事项,尽管这是基于系统的示例数据 - 格式无法更改,因此这不是一个可接受的解决方案.
我似乎无法确定我出错的地方 - 我尝试的每个LINQ表达式都不会返回任何内容,我认为命名空间是一个问题,并且已经尝试集成这个但是我要进入圈子.
解决方案必须在Silverlight和C#中工作
我尝试过以下方法:
IEnumerable<XElement> nodes =
element.Elements().Where(e => e.Name.LocalName == "items")
Run Code Online (Sandbox Code Playgroud)
然而,这让我得到了所有"项目",包括"数据"下的那些我不想要那些.
如果我在XML上执行以下操作,我会看到显示的元素名称:
XElement element = XElement.Parse(data);
foreach (XElement node in element.Elements())
{
MessageBox.Show(node.Name.LocalName);
}
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做时,我根本看不到项目下的节点名称 - 我已经检查了XElement,它确实有节点,当我输出上面的名称时,"items"会显示信息和id!
foreach (XElement node in element.Elements("items")) …Run Code Online (Sandbox Code Playgroud) 我在存储过程中有以下声明:
DECLARE @Count INT
EXEC @Count = GetItemCount 123
SELECT @Count
Run Code Online (Sandbox Code Playgroud)
其中使用以下语句调用另一个存储过程:
SELECT COUNT(Item) FROM tblItem WHERE ID = @ID
Run Code Online (Sandbox Code Playgroud)
但是,当我测试呼叫时,EXEC正确输出值,但未正确分配给@Count变量.我见过这样的例子或存储过程,包括这里,但没有一个参数和使用的返回值(我可以找到).ID参数被传递到第二个语句,该语句返回第一个StoredProcedure使用的计数值 - 我读过的所有信息似乎表明这应该有效 - 但即使GetItemCount,@ Count值也不会为零.始终返回正确的值.
如果有帮助,这是在Microsoft SQL Server 2008中.
sql parameters stored-procedures return-value sql-server-2008
我有一个可视刷子,它是一组形状,其主要颜色本身就是动态资源 - 因此形状是例如MyShape和由Shape对象引用的Color,MyColour.
我的问题是当我为此更新颜色时 - 它只在第一次加载形状时发生(颜色需要先设置)然而,尽管我更改了颜色但它不会更新使用颜色的动态资源 - 我该如何工作?
只需要让动态资源在另一个动态资源中工作,并在我更改颜色时让它们都更新.
我不知道如何让它工作 - 我花时间为WPF创建一个颜色选择器只发现我无法改变这个项目的颜色 - 1层资源工作在哪里我直接设置画笔/颜色而不是颜色在另一个对象或2层资源中.
编辑:我的问题似乎是特定的在单独的资源/字典中使用这些,因为我的程序需要从一个类而不是Window访问此项目,当MyColor在一个单独的资源时,提到的主要示例不起作用.
使用通用Windows平台(UWP)使用InkCanvas控件我似乎无法确定在使用InkCanvas时擦除墨迹笔划的正确方法 - 可以处理事件"StrokeErased".
理想情况下,将使用"InkCanvas.EditingMode"值设置为"InkCanvasEditingMode.EraseByPoint"或"InkCanvasEditingMode.EraseByStroke"的"InkCanvasEditingMode",但这些在Windows 10下的InkCanvas中不可用.
示例https://github.com/Microsoft/Windows-universal-samples/tree/master/simpleink提到"擦除墨迹笔划",但该示例只处理StrokeErased事件而没有实际支持擦除它们,我可以看到,我错过了什么?
我希望能够在Silverlight中拥有动态渐变,如下所示:
<RadialGradientBrush GradientOrigin="0.20,0.5" Center="0.25,0.50"
RadiusX="0.75" RadiusY="0.5">
<GradientStop Color="{Binding Path=GradientStart}" Offset="0" />
<GradientStop Color="{Binding Path=GradientEnd}" Offset="1" />
</RadialGradientBrush>
Run Code Online (Sandbox Code Playgroud)
我绑定到两个返回类型"颜色"的属性,但我总是收到此消息:
AG_E_PARSER_BAD_PROPERTY_VALUE
Run Code Online (Sandbox Code Playgroud)
如果我尝试绑定到GradientStop Collection,这也有同样的问题,这个问题的解决方案是什么:
如果有工作或者无论如何都要复制这种行为,这是可以接受的,我有解决方案可以使用LinearGradients,因为我可以将某些东西"填充"属性绑定到此 - 但是在这种情况下不起作用,加上可能是我可能使用的其他渐变类型,其他人可能会在将来使用此解决方案/替代方案.
我在Silverlight的一个网页,其中从MainPage.xaml中航海下,所谓的OpenPage.xaml,那么我想传递一个值回到MainPage.xaml中 - 这OpenPage.xaml被称为使用这样的:
NavigationService.Navigate(new Uri("/OpenPage.xaml", UriKind.Relative));
Run Code Online (Sandbox Code Playgroud)
从主页 - 这不是MainPage的子节点,因为RootVisual被替换 - 我可以这样称呼:
NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative));
Run Code Online (Sandbox Code Playgroud)
要返回MainPage - 但是我需要将一个值从OpenPage.xaml传递给MainPage.xaml - 如何访问MainPage实例 - 我有一个名为Document的属性但是当我这样做时:
MainPage m = (MainPage)Application.Current.RootVisual;
m.Document = "Hello World";
Run Code Online (Sandbox Code Playgroud)
或这个:
((MainPage)root).Document = "Hello World";
Run Code Online (Sandbox Code Playgroud)
我得到一个无效转换异常,因为我认为这是试图将OpenPage.xaml转换为MainPage.xaml中-如何我得到的NavigatedTo页,我想设置从OpenPage.xaml上MainPage.xaml中的财产.
我还想将值从MainPage.xaml传递到另一个页面SavePage.xaml - 但这有同样的问题 - 我该如何解决这个问题?
使用XAML/WPF做一些简单的事情似乎有很多问题 - 我使用像Rectangle和Ellipse这样的形状创建了一些基于XAML的图像来创建我需要应用程序的其他部分使用的图标 - 但我不能似乎找到了如何做到这一点 - 我似乎能够在资源字典中存储Canvas,但无法在任何其他窗口中使用它.这是怎么做的 - 这些是我想要在整个项目中使用的两三个形状的简单图像!
图像也必须可调整大小 - 我知道如何存储路径,但是这些形状包含我想保留的渐变样式,而且我不知道矩形如何转换为路径和颜色数据.
谢谢!
我需要规划出Class,Method,Attribute样式图,我已经在看Class Designer的Visual Studio,但它似乎没有做我想做的.我希望能够让图表显示类似的Visual Studio- 除了我希望能够表示这些方法所需的参数,例如:
getStock(StockID)
Run Code Online (Sandbox Code Playgroud)
这将在图中显示.这是一个ASP.NET网站 - 为这样的网站创建图表以表示方法的最佳方法是什么 - 我不想开始生成类 - 这就是我想要使用的原因Visio,而且我Visio比我更熟悉在Visual Studio Class设计师,我大多使用Express的产品不配备此行.
我希望这例如Default.aspx:
Default.aspx
(View)
Methods:
- FeaturedStock()
- GetStock(StockID)
- ShowContent()
- ShowImage(StockID)
Run Code Online (Sandbox Code Playgroud)
我不想使用,UML因为这太混乱了 - Visual Studio Class图表接近我想要的但我不能让它显示我的方法上的参数.
我的主要目标是为页面所需的每个方法设置"存根",以便作为开发人员实现该功能,这是我计划此项目的最简单方法.
我需要从SQL Server数据库(SQL Server 2000)获取日期,日期存储如下:
2009-09-30 00:00:00.000
Run Code Online (Sandbox Code Playgroud)
我想将此日期传递给Classic ASP函数,以便在其他地方的数据库中使用此日期,但是当我得到日期时,它会将我的ASP代码转换为依赖于语言环境的版本,例如:
30/09/2009
Run Code Online (Sandbox Code Playgroud)
我只是希望日期原样格式化日期,所以它再次正确似乎是不必要的,虽然如果这是唯一的方法那么好 - 是否有任何方式将其视为字符串数据所以它保持这样,所以它可以插入以相同的日期返回数据库,无需转换?
我的问题是我想运行一个查询来检查我使用的数据是否与数据库中已有的数据重复,例如我有一个产品代码,并希望停止多次列出相同的项目,这产品代码是主键.
我可以避免这样做:
SELECT ProductCode FROM tblProducts WHERE ProductCode = '12345'
Run Code Online (Sandbox Code Playgroud)
然后检查任何返回的记录,或者是否有更优雅的解决方案,我不介意使用这种方法,但它看起来很笨拙.这只是对我的代码的一些额外验证,因为产品的插入应该只发生一次 - 但我想要对此进行错误检查,因为由于刷新或使用后退按钮(基于Web的系统)而输入了重复项.
不知道这是P = NP型问题还是我在思考这个问题?
我的数据库是MS SQL Server 2000,如果这有帮助.
我有一个SQL函数,其中包含以下SQL:
SELECT StockID FROM (SELECT DISTINCT StockID,
ROW_NUMBER() OVER(ORDER BY DateAdded DESC) AS RowNum
FROM Stock
WHERE CategoryCode LIKE @CategoryID) AS Info
WHERE RowNum BETWEEN @startRowIndex AND (@startRowIndex + @maximumRows) - 1
Run Code Online (Sandbox Code Playgroud)
我有一个参数@CategoryID - 但我需要接受类别ID,如"BA",并将其转换为类别ID列表,如"IE","EG"等,所以我的WHERE子句看起来像:
WHERE (CategoryCode LIKE 'IE' OR CategoryCode LIKE 'EG') AS Info
Run Code Online (Sandbox Code Playgroud)
我有一个查找表,其中包含"BA"代码,然后是所有真正的类别代码,例如"IE"和"EG".如何在我的SQL函数中将CategoryID扩展为多个"OR"语句?我不确定如何做到这一点,任何人都可以解决这个问题吗?
目前所示的查询可以处理一个类别ID,例如"IE",这样做是因为我想要一个类别页面,例如category.aspx,其中传递参数"BA",例如category.aspx?category = BA and此页面将列出所有带有类别代码"EG"和"IE"的项目.
我需要这个的原因是有一个"父"类别代码,它有多个"子"类别代码,它们与父代码不同.如果这有帮助,我在前端使用ASP.NET和.NET 3.5.
c# ×5
silverlight ×4
xaml ×4
sql ×3
sql-server ×3
asp.net ×2
linq ×2
resources ×2
wpf ×2
.net ×1
asp-classic ×1
binding ×1
class ×1
database ×1
date ×1
diagram ×1
function ×1
gradient ×1
gradientstop ×1
inkcanvas ×1
list ×1
navigation ×1
parameters ×1
parsing ×1
primary-key ×1
return-value ×1
shape ×1
split ×1
string ×1
unique ×1
vb.net ×1
visio ×1
windows-10 ×1
xml ×1