我需要一个算法,它返回一个字符串中所有字符的所有可能组合.
我试过了:
$langd = strlen($input);
for($i = 0;$i < $langd; $i++){
$tempStrang = NULL;
$tempStrang .= substr($input, $i, 1);
for($j = $i+1, $k=0; $k < $langd; $k++, $j++){
if($j > $langd) $j = 0;
$tempStrang .= substr($input, $j, 1);
}
$myarray[] = $tempStrang;
}
Run Code Online (Sandbox Code Playgroud)
但是,它只返回与字符串长度相同的数量组合.
说$input = "hey",结果将是:hey, hye, eyh, ehy, yhe, yeh.
我只是浏览我安装的程序以释放一些空间,我注意到有两个版本的Windows SDK和ASP.NET SDK.这些是32位还是64位?包名称并不表示是这种情况,所以我想知道我是否需要安装这些软件包的两个版本?
正如您在图像中看到的那样,Windows SDK 10.1.10586.15和Windows SDK 10.0.26624,ASP.NET RC1 Update 1 1.0.20204.0和ASP.NET RC1 Update 1 10.0.11123.0.由于两个软件包都安装在同一天,我假设它们是32位和64位,但我还是假设它们会被命名,如果是这样的话.
这些包用于Visual Studio 2015中的Windows 10 Universal应用程序开发.
这是一个我很困惑的一般性问题.我认为一旦发出REST请求,就会通过一个错误返回错误WebException.在一个案例中,我得到了一个HttpRequestException,这不允许我获取HTTP状态代码.
我对这些东西不熟悉,但这些之间的区别是什么?为什么有两种类型?什么时候使用而不是另一个?
WebException似乎运作良好.HttpRequestException它似乎是一个非常弱的版本,它知道状态代码(在它的消息中),但它不会明确告诉我它是什么.
编辑:
我正在使用HttpClient.专门打电话client.GetStreamAsync().
我正在尝试将一个::before和::after伪元素添加到菜单标题.伪元素适用于菜单外的常规链接.然而,当我试图把它们应用到菜单项,在background属性设置,但::before和::after性质都没有.
这是相关的CSS:
#cssmenu {
background-color: #FFFFCC;
clear: both;
display: inline;
float: left;
list-style: none;
overflow: hidden;
text-align: center;
text-transform: uppercase;
width: 100%;
}
#cssmenu li {
display: inline-block;
}
#cssmenu li a {
display: inline-block;
}
#cssmenu li ul {
/*margin-top: 0px; submenu location relative to bottom of parent */
display: none;
}
#cssmenu li:hover ul {
display: block;
position: absolute;
}
#cssmenu li ul li a {
width: 200px; …Run Code Online (Sandbox Code Playgroud) 我已经绑定了GridView一个ICollectionView在XAML设计器中的属性未知,因为CollectionView已经转换为类型Object的实体并且无法访问实体属性,它运行良好没有错误但设计者将其显示为错误,如果我绑定到我可以访问属性的集合
示例实体是一个Person具有string Name属性的我将它们放在一个ObservableCollection<Person>并从中获取视图并将其绑定到GridView.ItemsSource现在当我尝试设置列标题DataMemberBinding.FirstName属性时,设计器将其显示为错误
无法在类型对象的数据上下文中解析属性'FirstName'
这是一个错误还是Resharper在我身上耍花招
示例代码:
public class Person
{
public string FirstName{
get { return _firstName; }
set { SetPropertyValue("FirstName", ref _firstName, value); }
}
}
public class DataService
{
public IDataSource DataContext { get; set; }
public ICollectionView PersonCollection{ get; set; }
public DataService()
{
DataContext = new DataSource();
//QueryableCollectionView is from Telerik
//but if i use any other CollectionView …Run Code Online (Sandbox Code Playgroud) 我使用http://www.codeproject.com/Tips/552141/Csharp-Image-resize-convert-and-save中的代码以编程方式调整图像大小.但是,该项目使用的System.Drawing库是Windows 10应用程序无法使用的.
我尝试过使用BitmapImage该类Windows.UI.Xaml.Media.Imaging,但它似乎没有提供在System.Drawing... 中找到的功能.
有没有人能够在Windows 10中调整大小(缩小)图像?我的应用程序将处理来自多个源,不同格式/大小的图像,我试图调整实际图像的大小以节省空间,而不是让应用程序调整大小以适应Image它的显示位置.
编辑
我已经修改了上面提到的链接中的代码,并且有一个hack可以满足我的特定需求.这里是:
public static BitmapImage ResizedImage(BitmapImage sourceImage, int maxWidth, int maxHeight)
{
var origHeight = sourceImage.PixelHeight;
var origWidth = sourceImage.PixelWidth;
var ratioX = maxWidth/(float) origWidth;
var ratioY = maxHeight/(float) origHeight;
var ratio = Math.Min(ratioX, ratioY);
var newHeight = (int) (origHeight * ratio);
var newWidth = (int) (origWidth * ratio);
sourceImage.DecodePixelWidth = newWidth;
sourceImage.DecodePixelHeight = newHeight;
return sourceImage;
}
Run Code Online (Sandbox Code Playgroud)
这种方式似乎工作,但理想情况下,而不是修改原始BitmapImage,我想创建一个新的/副本来修改和返回.
我正在研究将一些敏感数据存储在我正在处理的应用程序中.我一直在看ProtectedData微软提供的课程,看起来非常简单.但是,我有几个关于它是如何工作的问题.
首先,我看到它使用"用户的登录凭据"来生成加密密钥.我在文档中看到只有当前用户才能解密数据.这不是问题,我只是想知道同一个用户是否在另一台机器上登录,他们是否能够解密数据?我计划通过OneDrive共享保存的信息,因此希望它可以在同一用户使用的任何设备上访问.
例如:
User A logs in on desktop computer, saves encrypted file abc.txt
User A then logs in on tablet, loads file abc.txt
Run Code Online (Sandbox Code Playgroud)
是abc.txt访问用户A在平板电脑上?
第二,一旦用户更改密码会发生什么?在我看来,加密密钥会有所不同,并且不会导致使用先前加密密钥的数据的解密不再可恢复?
例如:
User A logs in on desktop computer, saves encrypted file abc.txt
User A changes password
User A logs in on desktop computer, loads file abc.txt
Run Code Online (Sandbox Code Playgroud)
用户A是否abc.txt可以访问?
如果我使所有类属性结构成员像下面的代码一样,我会创建任何问题吗?
private struct Properties
{
public int p1;
public int p2;
}
private Properties P;
public int p1 { get { return P.p1; } set { P.p1 = value; } }
public int p2 { get { return P.p2; } set { P.p2 = value; } }
Run Code Online (Sandbox Code Playgroud)
我在VB中做了类似的事情多年,但速度并不重要.现在我开始在速度很重要的实时项目上开始使用C#.感谢您的任何反馈!
我有一个InvokeCommandAction与我喜欢的GotFocus事情相关的TextBox事情:
<TextBox Grid.Row="0"
Grid.Column="1"
Width="40"
HorizontalAlignment="Right">
<i:Interaction.Triggers>
<i:EventTrigger EventName="GotFocus">
<i:InvokeCommandAction Command="{Binding GotFocusCommand}" CommandParameter="Enter data [message to be displayed]" />
</i:EventTrigger>
</i:Interaction.Triggers>
</TextBox>
Run Code Online (Sandbox Code Playgroud)
它的工作方式很好,但是我有几十个TextBox这样的设置.而不是重复代码(正如我目前为每个代码所做的那样),我希望将该触发器附加到所有类型的控件{x:Type TextBox}.
通常,我会在该Resources部分设置属性,如下所示:
<UserControl.Resources>
<Style TargetType="TextBlock">
<Setter Property="Padding" Value="5,0,0,0" />
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
</UserControl.Resources>
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不适用于Triggers:
附加属性"触发器"只能应用于从"DependencyObject"派生的类型.
理想情况下,我想做这样的事情:
<UserControl.Resources>
<Style TargetType="{x:Type TextBox}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="GotFocus">
<i:InvokeCommandAction Command="{Binding GotFocusCommand}" CommandParameter="{Binding Tag}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Style>
</UserControl.Resources>
Run Code Online (Sandbox Code Playgroud)
然后我只需要设置Tag每个属性TextBox来指定要显示的消息.我是在正确的轨道上吗?我是否需要将其更改为使用ControlTemplate或类似的东西?
编辑 …
我在这里和网上阅读了一些类似的主题,但我认为我没有看到将其归类为重复的主题,因此我将继续发布。我目前正在从数据库加载我的动态菜单,如下所示:
public void LoadMenus()
{
var dbContext = new ContentClassesDataContext();
var menus = from m in dbContext.Menus
where m.MenuName != "Home" && m.MenuGroup == "RazorHome" && m.RoleID == "Facility"
orderby m.Sequence, m.MenuName
select m;
var html = "";
if (menus.Any())
{
html += "<span/>";
foreach (var menu in menus)
{
html = html + $"<a href='{menu.URL}'>{menu.MenuName}</a><br/>";
}
html += "<hr>";
}
Session["Menus"] = html;
}
Run Code Online (Sandbox Code Playgroud)
LoadMenus()在我的控制器类中,所以我不能(据我所知)使用 Razor 语法。我更愿意从视图中加载菜单,以便我能够使用@Html.ActionLink(linkText, actionName, controllerName). 以我目前的方式加载 HTML 将根据当前控制器生成不同的链接文本,因此链接并不总是正确呈现。是否可以从视图访问数据库?或者也许只是将数据库中的内容从控制器传递到视图,然后以这种方式呈现菜单?
我正在将我的项目从使用基于SQL Server的实体框架模型转换为使用本地SQLite数据库.到目前为止一切进展顺利,但由于某种原因,我无法对多列进行排序.例如:
using (var db = new SQLiteConnection("test3.db"))
{
var query = from a in db.Table<Account>()
where a.Inactive == false
orderby a.AccountName, a.AccountNickname
select a;
foreach (var account in query)
{
accounts.Add(account);
}
}
AccountsGrid.ItemsSource = accounts;
Run Code Online (Sandbox Code Playgroud)
给我错误Cannot resolve symbol 'ThenBy',但如果我将订单更改为:
orderby a.AccountName
Run Code Online (Sandbox Code Playgroud)
然后查询工作正常.我也试过使用,.OrderBy(a => a.AccountName).ThenBy(a => a.AccountNickname)但我得到了同样的错误.我已经包括using System.Linq;但是ReSharper告诉我不需要using指令,所以这看起来也很可疑.有没有人有任何想法,我可能会失踪?
我想知道是否有一种直接在SQL中根据字段值连接字符串的方法.我知道最好在应用程序中执行,但在这种情况下,我只能使用SQL.例如,下表:
Labels | Qty | LabelQty | OutputString
-------+-----+----------+--------------
1 | 30 | 30 | NULL
2 | 60 | 30 | NULL
2 | 120 | 60 | NULL
Run Code Online (Sandbox Code Playgroud)
我想像这样结束OutputString:
Labels | Qty | LabelQty | OutputString
-------+-----+----------+--------------
1 | 30 | 30 | 30|
2 | 60 | 30 | 30|30|
2 | 120 | 60 | 60|60|
Run Code Online (Sandbox Code Playgroud)
我知道在C#或VB中这很容易做到,但我很难想到如何在直接SQL中实现这一点.我是否需要使用游标并一次执行一行?不幸的是,我不能像Ruby一样使用字符串乘数,例如:
SELECT (CONVERT(VARCHAR(10), LabelQty) + '|') * Labels
Run Code Online (Sandbox Code Playgroud)
任何指针都非常感谢.
我正在构建一个Windows应用商店应用,我有一个如下所示的弹出窗口:

该Flyout工作正常,我可以添加当我点击"添加"一个新的地址Button.问题是,我希望能够隐藏它Flyout.我DelegateCommand在ViewModel,所以我没有参考实际的View元素.
我试过更改DelegateCommand参数,如下所示:
public DelegateCommand<object> AddAddressCommand
{
get { return new DelegateCommand<object>(AddAddress, CanAddAddress); }
}
public void AddAddress(object parameter)
{
if (_isEditing)
{
NewAddress.PayeeId = CurrentPayee.Id;
_addressRepository.InsertAsync(NewAddress);
}
CurrentPayee.Addresses.Add(NewAddress);
NewAddress = new Address();
// TODO: hide Flyout
}
Run Code Online (Sandbox Code Playgroud)
而在我的XAML中,我试图通过一CommandParameter到DelegateCommand,像这样:
<Button Content="Add"
Command="{Binding AddAddressCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource Self}}"
HorizontalAlignment="Center" />
Run Code Online (Sandbox Code Playgroud)
如果我通过{RelativeSource Self},我得到了Button预期的引用,但我无法引用树上的任何其他内容."添加" Button是其中的子项Flyout,附加到"添加地址" AppBarButton.
理想情况下,我可以Flyout …
c# ×8
xaml ×3
sql ×2
wpf ×2
.net ×1
algorithm ×1
asp.net-mvc ×1
combinations ×1
css ×1
encryption ×1
image ×1
linq ×1
mvvm ×1
permutation ×1
php ×1
razor ×1
rest ×1
sql-server ×1
sqlite ×1
string ×1
vb.net ×1
webexception ×1
windows-10 ×1
windows-8.1 ×1
winrt-xaml ×1