我需要编写一个方法,通过循环旋转将字符串值从AAA递增到ZZZ(ZZZ之后的下一个值是AAA)
这是我的代码:
public static string IncrementValue(string value) {
if (string.IsNullOrEmpty(value) || value.Length != 3) {
string msg = string.Format("Incorrect value ('{0}' is not between AAA and ZZZ)", value);
throw new ApplicationException(msg);
}
if (value == "ZZZ") {
return "AAA";
}
char pos1 = value[0];
char pos2 = value[1];
char pos3 = value[2];
bool incrementPos2 = false;
bool incrementPos1 = false;
if (pos3 == 'Z') {
pos3 = 'A';
incrementPos2 = true;
} else {
pos3++;
}
if (incrementPos2 && pos2 …Run Code Online (Sandbox Code Playgroud) 我需要一个Generic函数来根据枚举的XmlEnumAttribute"Name"属性检索枚举的名称或值.例如,我定义了以下枚举:
Public Enum Currency
<XmlEnum("00")> CDN = 1
<XmlEnum("01")> USA= 2
<XmlEnum("02")> EUR= 3
<XmlEnum("03")> JPN= 4
End Enum
Run Code Online (Sandbox Code Playgroud)
第一个Currency枚举值为1; 枚举名称是"CDN"; 并且XMLEnumAttribute Name属性值为"00".
如果我有枚举值,我可以使用以下通用函数检索XmlEnumAttribute"Name"值:
Public Function GetXmlAttrNameFromEnumValue(Of T)(ByVal pEnumVal As T) As String
Dim type As Type = pEnumVal.GetType
Dim info As FieldInfo = type.GetField([Enum].GetName(GetType(T), pEnumVal))
Dim att As XmlEnumAttribute = CType(info.GetCustomAttributes(GetType(XmlEnumAttribute), False)(0), XmlEnumAttribute) 'If there is an xmlattribute defined, return the name
Return att.Name
End Function
Run Code Online (Sandbox Code Playgroud)
因此,使用上面的函数,我可以指定Currency枚举类型,传递值1,返回值将为"00".
我需要的是一个相反的功能.如果我有XmlEnumAttribute Name值"00",我需要一个函数来返回值为1的Currency枚举.同样有用的是一个返回枚举名称"CDN"的函数.然后我可以简单地解析它以获得枚举值.
任何援助将不胜感激.
我是WPF和MVVM的新手.我认为这是一个简单的问题.我的ViewModel正在执行异步调用以获取DataGrid的数据,该DataGrid绑定到ViewModel中的ObservableCollection.加载数据时,我设置了正确的ViewModel属性,DataGrid显示数据没有问题.但是,我想为用户引入数据加载的视觉提示.所以,使用Blend,我将其添加到我的标记中:
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="LoadingStateGroup">
<VisualState x:Name="HistoryLoading">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="HistoryGrid">
<DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Hidden}"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="HistoryLoaded">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="WorkingStackPanel">
<DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Hidden}"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
Run Code Online (Sandbox Code Playgroud)
我想我知道如何在我的代码隐藏中更改状态(类似于此):
VisualStateManager.GoToElementState(LayoutRoot, "HistoryLoaded", true);
Run Code Online (Sandbox Code Playgroud)
但是,我想要这样做的地方是我的ViewModel的I/O完成方法,它没有引用它的相应View.我如何使用MVVM模式实现这一目标?
我的模式如下:
{(code)}
其中代码是一个数字(最多6位数),或2个字母后跟一个数字.
例如:
{(45367)}
{(265367)}
{(EF127012)}
我想在长字符串中找到所有出现的内容,我不能只使用纯正则表达式,因为我需要在找到匹配项时执行某些操作(比如记录位置和匹配类型).
我在返回语句之前打印我正在返回的值,并告诉我的代码打印函数调用后立即返回的值.但是,在我的第一个print语句之后和第二个print语句之前,我得到了一个分段错误(也有趣的是,这总是在第三次调用函数时发生;从不是第一次或第二次,从不第四次或更晚).我尝试打印出我正在处理的所有数据,看看我的其余代码是否正在做一些它可能不应该做的事情,但到目前为止我的数据看起来很好.这是功能:
int findHydrogen(struct Amino* amino, int nPos, float* diff, int totRead) {
struct Atom* atoms;
int* bonds;
int numBonds;
int i;
int retVal;
int numAtoms;
numAtoms = (*amino).numAtoms;
atoms = (struct Atom *) malloc(sizeof(struct Atom) * numAtoms);
atoms = (*amino).atoms;
numBonds = atoms[nPos].numBonds;
bonds = (int *) malloc(sizeof(int) * numBonds);
bonds = atoms[nPos].bonds;
for(i = 0; i < (*amino).numAtoms; i++)
printf("ATOM\t\t%d %s\t0001\t%f\t%f\t%f\n", i + 1, atoms[i].type, atoms[i].x, atoms[i].y, atoms[i].z);
for(i = 0; i < numBonds; i++)
if(atoms[bonds[i] - totRead].type[0] == …Run Code Online (Sandbox Code Playgroud) 我正在寻找替代编程语言(从汇编,C,C++和基础)到嵌入式(微控制器)编程.
例如,可以用C#或Java编程微控制器吗?也许Ruby或Python?
如果可能,请发布使用的开发工具和硬件.
我的导航控制器只有很少的视图.我在其中一个视图中有表视图.当用户在表格视图中选择单元格时,我显示刻度线.至此,它的罚款.当用户返回上一个视图并返回时,我想重置表格视图.怎么样?
我想用JavaScript分割某些文本.文字看起来像:
9:30 pm
The user did action A.
10:30 pm
Welcome, user John Doe.
11:30 am
Messaged user John Doe
Run Code Online (Sandbox Code Playgroud)
现在,我想将字符串拆分为事件.即:
9:30 pm
The user did action A.
Run Code Online (Sandbox Code Playgroud)
将是一个事件.我正在使用RegEx:
var split = journals.split(/\d*\d:/);
Run Code Online (Sandbox Code Playgroud)
事实是,前两个角色正在迷失.拆分看起来像这样:
30 pm
The user did action A.
Run Code Online (Sandbox Code Playgroud)
如何分割以使分割保持前两个/三个字符(即9:或10 :)等?
谢谢!
在我的Web应用程序中,我使用的是NHibernate.dll.这依赖于下面的程序集.
'Antlr3.Runtime,Version = 3.1.0.39271,Culture = neutral,PublicKeyToken = 3a9cab8f8d22bfb7'
现在在另一个需求的同一项目中,我必须介绍Antlr3.StringTemplate.dll.哪个依赖于上面程序集的另一个版本.
如果我使用满足NHibernate的Antlr3.Runtime.dll版本,Antlr3.StringTemplate会开始抱怨,反之亦然.
如何解决这样的情况?
c# ×3
regex ×2
.net ×1
asp.net ×1
assemblies ×1
c ×1
embedded ×1
enums ×1
increment ×1
iphone ×1
java ×1
javascript ×1
matlab ×1
mvvm ×1
nhibernate ×1
performance ×1
reflection ×1
reset ×1
silverlight ×1
split ×1
string ×1
uitableview ×1
vb.net ×1
wpf ×1